Dockerfile生成镜像

Dockerfile生成镜像

一 背景

以前创建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
相关推荐
Mr.Ja5 天前
【Docker 从入门到实战】——解决跨环境部署痛点的完整指南
运维·docker·容器·dockerfile·dockerimage
Garfield200522 天前
Kubeflow 运行容器时 ENTRYPOINT 被覆盖导致环境变量未生效问题分析与解决
k8s·dockerfile·kubeflow·entrypoint
chen_note1 个月前
Dockerfile及其部署镜像步骤
docker·容器·镜像·dockerfile
梁正雄1 个月前
9、dockerfile
docker·dockerfile·dockerfile基础用法
胡斌附体2 个月前
dockerfile理解
dockerfile·dockercompose
邂逅星河浪漫2 个月前
【DockerFile+Nginx+DockerCompose】前后端分离式项目部署(docker容器化方式)
nginx·docker·centos·部署·docker-compose·dockerfile·容器化部署
NorthCastle4 个月前
Dockerfile 文件及指令详解
docker·指令·dockerfile
IT成长日记5 个月前
【Docker基础】Dockerfile指令速览:文件与目录操作指令详解
docker·容器·volume·add·dockerfile·workdir
IT成长日记5 个月前
【Docker基础】Dockerfile指令速览:基础常用指令详解
docker·容器·dockerfile·cmd·copy·from·run