网站信息安全建设方案,公众号网站建设,为什么做网站推广,定海网一般的#xff0c;Dockerfile 分为四部分#xff1a;基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。 ####官网学习 https://docs.docker.com/engine/reference/builder/#usage ####FROM 必须为第一个命令#xff0c;指定基础镜像 FROM image
FROM Dockerfile 分为四部分基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。 ####官网学习 https://docs.docker.com/engine/reference/builder/#usage ####FROM 必须为第一个命令指定基础镜像 FROM image
FROM image:tag
FROM imagedigest FROM scratch #制作base Image
FROM centos #使用base Image
FROM centos:7.9
FROM mysql:5.6 尽量使用官方的image作为base image那是经得起考验的 ####LABEL 给镜像添加信息。使用docker inspect可查看镜像的相关信息 LABEL maintainer394498036qq.com
LABEL version1.0
LABEL descriptionThis is description \
欢迎关注编程坑太多我在等你. 其实就类似咱们写代码的注释很多人写代码不愿意写注释其实写注释对自己的负责过段时间翻坑的时候想想当初的意思容易很快的解决所以一定要写LABEL ####RUN 构建镜像时执行的命令 RUN yum update yum install -y vim \
python-dev #反斜线换行 RUN apt-get update apt-get install -y perl \pwgen --no-install-recommends rm -rf \/var/lib/apt/lists/* #注意清理cache RUN /bin/bash -c source $HOME/.bashrc;echo $HOME 为了美观复杂的RUN请用反斜线换行避免无用分层合并多条命令成一行 ####WORKDIR 工作目录 WORKDIR /test #如果没有会自动创建test目录
WORKDIR jianshu
RUN pwd #输出结果应该是/test/jianshu 用WORKDIR不要用RUN cd 尽量使用绝对目录 ####ADD and COPY 将本地文件添加到容器中identity, gzip, bzip2xztar.gztgz等类型的文件将被添加tar -x命令进行解压同ADD只是不会解压文件。 ADD lt;srcgt;... lt;destgt;
ADD [lt;srcgt;,... lt;destgt;] 用于支持包含空格的路径
COPY lt;srcgt;... lt;destgt;
COPY [lt;srcgt;,... lt;destgt;] 用于支持包含空格的路径 ADD hello /
ADD test.tar.gz / #添加到根目录并解压
WORKDIR /root
ADD hello test/ # /root/test/hello WORKDIR /root
COPY hello test/ # /root/test/hello 大部分情况COPY优于ADDADD除了COPY还有额外功能解压缩添加远程文件/目录请使用curl 或者wget ####ENV 设置环境变量 ENV key value
ENV keyvalue ... ENV MYSQL_VERSION 5.6
E-NV apt-get install -y mysql-server ${MYSQL_VERSION} \rm -rf /var/lib/apt/lists/* #引用常亮 尽量多使用减少维护成本 学习下面的先了解下 Shell 和Exec 格式 Shell格式 RUN apt-get install -y vim
CMD echo hello docker 微信公众号编程坑太多
ENTRYPOINT echo hello docker 微信公众号编程坑太多Exec格式 RUN [apt-get, install, -y, vim]
CMD [/bin/echo,hello docker 微信公众号编程坑太多]
ENTRYPOINT [/bin/echo,hello docker 微信公众号编程坑太多] Dockerfile1 FROM centos
ENV name Docker
ENTRYPOINT echo hello $nameDockerfile2 FROM centos
ENV name Docker
ENTRYPOINT [/bin/echo, hello $name] 通过实际的例子查看区别。 mkdir cmd-entrrypoint
cd cmd-entrrypoint/
vi Dockerfile先执行Dockerfile1 more Dockerfile docker build -t liming/centos-entrypoint-shell . docker run liming/centos-entrypoint-shell 先执行Dockerfile2more Dockerfile docker build -t liming/centos-entrypoint-exec . docker run liming/centos-entrypoint-exec 我们通过shell格式运行的话它会通过默认的bash里面通过shell执行命令它会通过shell替换这边变量通过exec格式运行的话只是单纯的执行echo没办法帮我们替换到$name。如何解决不一样的问题呢请开始我的表演修改Dockerfile2 FROM centos
ENV name Docker
ENTRYPOINT [/bin/bash,-c, echo hello $name] docker build -t liming/centos-entrypoint-exec-new . docker run liming/centos-entrypoint-exec-new 是不是很nice ####CMD 设置容器启动后默认执行的命令和参数 容器启动时默认执行的命令如果docker run 指定了其他命令CMD命令被忽略如何定义了多个CMD只有最后一个会执行 FROM centos
ENV name Docker
CMD echo hello $name docker build -t liming/centos-cmd-shell .
docker run liming/centos-cmd-shell
docker run -it liming/centos-cmd-shell /bin/bash ####ENTRTYPOINT 设置容器启动时运行的命令 让容器以应用程序或者服务的形式运行不会被忽略一定会执行 FROM centos
ENV name Docker
ENTRYPOINT echo hello $name docker build -t liming/centos-entrypoint-shell .
docker run liming/centos-entrypoint-shell
docker run -it liming/centos-entrypoint-shell /bin/bash 个人网站IT人故事会 idig8.com PSDockerfile详解基本就介绍这么多可能还有很多命令没有讲解以后用到了在说吧。一定要CMD和ENTRTYPOINT因为很多官方的都常用这两个命令。 往期精彩 docker导学一容器的技术概述二docker的魅力初体验-5分钟安装wordpress不走弯路三docker官网介绍四如何在mac上安装docker五如何在window上安装docker六如何在mac上通过vagrant安装虚拟机七如何在window上通过vagrant安装虚拟机八docker-Machine的本地使用九docker-Machine的本地使用十在linux/mac下通过Docker-Machine在阿里云上的使用11docker架构和底层技术12docker Image概述13手动建立一个base Image14什么是Container15构建自己的Docker镜像16转载于:https://blog.51cto.com/12040702/2154833