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
相关推荐
羑悻的小杀马特4 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
Mr.朱鹏5 天前
Docker三剑客实战指南:Docker、Dockerfile 和 Docker Compose
python·docker·devops·dockerfile
.冰块.6 天前
Docker 镜像深度学习:分层 Copy‑on‑Write、Dockerfile 语法、Harbor 私有仓库实操
docker·容器·harbor·镜像·dockerfile·images
FungLeo16 天前
成为全栈·Node 后端篇·容器化:给 Node 应用写一个像样的 Dockerfile
docker·node.js·dockerfile·成为全栈·后端服务容器·docker 容器
孙克旭_1 个月前
Docker 镜像构建|Vue+SpringBoot+Go 多语言项目 Dockerfile 案例
linux·运维·vue.js·spring boot·docker·dockerfile
智码看视界1 个月前
Day53-Docker:Dockerfile最佳实践 + 多阶段构建 + docker-compose编排
java·spring boot·docker·docker-compose·dockerfile·容器化部署·多阶段构建
闲猫1 个月前
Docker本地用Dockfile 构建Java后端SprintBoot镜像
docker·springboot·dockerfile
SuperherRo2 个月前
云上攻防-云原生篇&Docker安全&Dockfile文件构建制作&不安全的镜像&不安全第三方组件
docker·dockerfile·不安全镜像·第三方组件
梦想的颜色3 个月前
Dockerfile 深度实战:从指令底层原理到生产级镜像构建的艺术
docker·容器·镜像·dockerfile·dockerfile解析
r-t-H3 个月前
Docker进阶与容器编排实践-第二章
运维·docker·容器·dockerfile·docker compose·docker网络