一 背景
以前创建docker镜像时,习惯拉一个简单镜像,然后在上面配置修改,再存成镜像。备份几次后发现镜像会变得特别大, 不利于拷贝和维护,因此把相关重要的配置做出Dockerfile.
二 Dockerfile文件
dockerfile
FROM ubuntu:18.04
COPY run.sh /
RUN chmod 755 /run.sh && apt-get update && apt-get install -y wget curl libssl-dev make python git libglib2.0-dev inetutils-ping net-tools uuid-dev zip vim default-jre openssh-server openssh-client passwd libpython2.7 libx11-dev libxfixes-dev libxdamage-dev libxcomposite-dev libbz2-dev liblzma-dev libxext-dev libva-dev libvdpau-dev libmpfr-dev openjdk-8-jdk && ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4 && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config && apt-get clean && apt-get autoclean
ADD CMake-3.18.2.tar.gz /tmp
WORKDIR /tmp/CMake-3.18.2
RUN ./configure && make && make install && rm -rf /tmp/CMake-3.18.2.tar.gz
WORKDIR /
RUN rm -rf /tmp/CMake-3.18.2 && apt-get install -y npm && npm install -g n && apt-get -y autoremove npm && n node/12.13.0 && n node/10.11.0
RUN npm config set strict-ssl false && npm config set registry https://registry.npmmirror.com && npm install -g node-gyp@5.0.2 && npm install -g yarn && yarn config set registry https://registry.npmmirror.com && yarn config set electron_mirror https://mirrors.huaweicloud.com/electron/
ADD node-gyp-cache.tar.gz /tmp
RUN mkdir -p /root/.cache/node-gyp/ && rm -rf /root/.cache/node-gyp/* && mv /tmp/node-gyp-cache/* /root/.cache/node-gyp/ && rm -rf /tmp/node-gyp-cache.tar.gz && rm -rf /tmp/node-gyp-cache && cp -rf /etc/apt/sources.list /etc/apt/sources.list_bak
COPY sources.list /etc/apt/
RUN apt-get update && apt-get install -y g++-7-aarch64-linux-gnu gcc-7-aarch64-linux-gnu g++-7-mips64el-linux-gnuabi64 gcc-7-mips64el-linux-gnuabi64 && ln -sf /usr/bin/aarch64-linux-gnu-g++-7 /usr/bin/aarch64-linux-gnu-g++ && ln -sf /usr/bin/aarch64-linux-gnu-gcc-7 /usr/bin/aarch64-linux-gnu-gcc && ln -sf /usr/bin/mips64el-linux-gnuabi64-g++-7 /usr/bin/mips64el-linux-gnuabi64-g++ && ln -sf /usr/bin/mips64el-linux-gnuabi64-gcc-7 /usr/bin/mips64el-linux-gnuabi64-gcc
RUN apt-get install -y openjdk-17-jdk && echo "export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> /etc/profile && echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile
三 相关命令
3.1 创建镜像
shell
docker build -t sdk_202512_ubuntu_18.04:v1 .
3.2 通过镜像创建容器
shell
sudo docker run -it -p 192.168.140.233:8001:22 --name sdk_package_ohospc_202512 --restart always -v /home/sharefile:/sharefile -d sdk_202512_ubuntu_18.04:v1:v1 /run.sh