docker - Dockerfile

生成镜像

docker build . -t my-Nginx

docker images

REPOSITORY               TAG            IMAGE ID      CREATED         SIZE
localhost/my-Nginx       maintainer     712befd1ad83  13 minutes ago  24.7 MB
docker.io/library/Nginx  stable-alpine  373f8d4d4c60  3 weeks ago     24.7 MB

Dockerfile

FROM Nginx:stable-alpine
MAINTAINER my-name   # 指定作者信息
#运行docker inspect my-Nginx,可以看到author是my-name

USER root # 指定运行容器的宿主机进程用户

workdir /etc/Nginx  # 启动容器后,容器内部的工作目录
#运行docker inspect my-Nginx | grep Work,可以看到WorkingDir

# ADD/copY 都可以将宿主机的文件上传到镜像中
# ADD支持将压缩包解压后上传到镜像中
ADD test.txt /etc/Nginx/
ADD myweb.tar.gz /usr/share/Nginx/html

# copY不支持压缩包解压上传(没有解压操作)
copY test.txt /etc/Nginx/
copY myweb.tar.gz /usr/share/Nginx/html
# 需要将myweb.tar.gz先解压到myweb目录,再copy
copY myweb /usr/share/Nginx/html

# EXPOSE 端口映射
copY 8080.conf /etc/Nginx/conf.d/
copY index.html /usr/share/Nginx/
EXPOSE 8080

# ENV 在容器中定义环境变量
ENV test=my-test-name

RUN 在镜像生成过程中需要执行的命令

FROM centos:7.6.1810
RUN yum install -y vim 
# 在此容器启动以后,会发现vim已经安装了(centos自己不带vim)。

CMD 在容器启动时执行的命令,如果启动容器时指定了执行命令,那么CMD命令就失效

FROM centos:7.6.1810
CMD echo "ok"

# 通过 docker build . -t centos:cmd 生成镜像
docker run --rm centos:cmd   --> ok
docker run --rm centos:cmd echo "ok2"  --> ok2

ENTRYPOINT 容器启动时执行的脚本,但不会被启动容器时指定的命令覆盖,只会将制定的命令当作参数传递给ENTRYPOINT

相关文章

Docker是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...