docker 笔记5
2019-07-17 本文已影响0人
光小月
利用commit 理解镜像构成
当我们运行一个容器的时候(如果不使用卷的话),我们做的任何文件修改都会被记录于容器存储层里。而 Docker 提供了一个 docker commit 命令,可以将容器的存储层保存下来成为镜像。换句话说,在原有镜像的基础上,再叠加上容器的存储层,并构成新的镜像。以后我们运行这个新镜像的时候,就会拥有原有容器最后的文件变化。
命令:
docker commit \
-m "修改了" \
webserver \
nginx:v2
此时将运行的容器保存为新的镜像
慎用 docker commit, 如果这样操作,将会导致镜像极为臃肿。
使用dockerfile定制镜像
新建dockerFile文件
mkdir mynginx
cd mynginx
touch Dockerfile
-------------------
FROM nginx
RUN echo '<h1>hello, Docker!</h1>' > /usr/share/nginx/html/index.html
-------------------
FROM 指定基础镜像
FROM scratch 意味着你不以任何镜像为基础
RUN 执行命令
两种格式:
- shell 格式:RUN <命令>
- exec 格式:RUN ["可执行文件", "参数1", "参数2"]
Dockerfile 支持 Shell 类的行尾添加 \ 的命令换行方式,以及行首 # 进行注释的格式。良好的格式,比如换行、缩进、注释等,会让维护、排障更为容易,这是一个比较好的习惯。
构建镜像
docker build -t nginx:v3 .
(nginx:v3 是将镜像的名和tag)
docker build 命令会将该目录下的内容打包交给 Docker 引擎以帮助构建镜像。
Docker 引擎, Docker 在运行时分为 Docker 引擎(也就是服务端守护进程)和客户端工具。Docker 的引擎提供了一组 REST API,被称为 Docker Remote API
其它 docker build 的用法
1.1 直接用 Git repo 进行构建
docker build https://github.com/twang2218/gitlab-ce-zh.git#:11.1
1.2 用给定的 tar 压缩包构建
docker build http://server/context.tar.gz
1.3 从标准输入中读取 Dockerfile 进行构建
docker build - < Dockerfile
1.4 从标准输入中读取上下文压缩包进行构建
docker build - < context.tar.gz
PS: 若你觉得可以、还行、过得去、甚至不太差的话,可以“关注”一下,就此谢过!