master
bicijinlian 3 years ago
parent 36e4aa492d
commit 77113e6840

@ -4,14 +4,17 @@ WORKDIR /app
# 注意只执行最后一个CMD # 注意只执行最后一个CMD
# CMD /bin/sh -c 'echo 我是CMD指令shell方式执行后写入的内容' # CMD /bin/sh -c 'echo 我是CMD指令shell方式执行后写入的内容'
# CMD ["/bin/sh", "-c", "read -p 输入任意键退出容器 "]
CMD ["/bin/sh", "-c", "echo exec方式执行后写入的内容"] # eCMD ["-c", "read -p 输入任意键退出容器 "]
ENTRYPOINT ["read", "-p xxxxxxxx"]
# ENTRYPOINT ["/bin/sh", "-c", "read -p 'Enter any key to exit the container' "]
# 提供默认参数,与 ENTRYPOINT 指令配合使用 # 提供默认参数,与 ENTRYPOINT 指令配合使用
# CMD ["-c", "echo 为 ENTRYPOINT 提供默认参数"] # CMD ["-c", "echo 为 ENTRYPOINT 提供默认参数"]
# ENTRYPOINT [ "/bin/sh" ] # ENTRYPOINT [ "/bin/sh" ]
# 注意后台运行的话因为执行完成cmd命令后进程结束。容器就自动退出了。 # 注意后台运行的话因为执行完成cmd命令后进程结束。容器就自动退出了。
# 可以使用阻塞命令:如等待用户输入等,来阻止容器自动退出
# docker build --rm -f Dockerfile.CMD -t study:buildcmd1 . # docker build --rm -f Dockerfile.CMD -t study:buildcmd1 .
# docker run --rm -it --name cmd.study study:buildcmd1 # docker run --rm -it --name cmd.study study:buildcmd1

@ -29,7 +29,7 @@
docker run -it ubuntu:18.04 /bin/bash docker run -it ubuntu:18.04 /bin/bash
``` ```
+ 基于本地模板,使用 `docker import ` 导入 + 基于本地模板,使用 `docker import` 导入
``` shell ``` shell
# 1 将现有容器,导出为模板文件 # 1 将现有容器,导出为模板文件
@ -119,8 +119,6 @@ tar包
Powershell示例Get-Content Dockerfile | docker build - Powershell示例Get-Content Dockerfile | docker build -
``` ```
Options Options
| 名称与速记 | 默认 | 描述 | | 名称与速记 | 默认 | 描述 |
@ -182,7 +180,7 @@ Options
# 加载 Dockerfile 文件 # 加载 Dockerfile 文件
=> [internal] load build definition from Dockerfile 0.0s => [internal] load build definition from Dockerfile 0.0s
# 把 dockerfile 文件传输到Docker守护进程服务大小为 149B # 把 dockerfile 文件传输到Docker守护进程服务大小为 149B
=> => transferring dockerfile: 149B 0.0s => => transferring dockerfile: 149B 0.0s
# 加载.dockerignore(Dockerfile目录下不上传文件配置文件) 文件 # 加载.dockerignore(Dockerfile目录下不上传文件配置文件) 文件
=> [internal] load .dockerignore 0.0s => [internal] load .dockerignore 0.0s
# 传输构建上下文会传Docfile目录及子目录中除.dockerignore配置外的所有文件及文件夹 # 传输构建上下文会传Docfile目录及子目录中除.dockerignore配置外的所有文件及文件夹
@ -204,9 +202,9 @@ Options
# 构建第二阶段 # 构建第二阶段
# 执行命令 # 执行命令
=> [2/2] ADD ./project/ /usr/local/app/ 3.6s => [2/2] ADD ./project/ /usr/local/app/ 3.6s
# 导出镜像 # 导出镜像
=> exporting to image 0.3s => exporting to image 0.3s
# 导出镜像层 # 导出镜像层
=> => exporting layers 0.0s => => exporting layers 0.0s
# 写入镜像文件 # 写入镜像文件
@ -291,7 +289,8 @@ exec形式可以避免 shell 字符串冗余,以及使用不包含指定 shell
# 该指令将在当前镜像之上的新层中执行任何命令并提交结果。生成的已提交映像将用于下一步中。 # 该指令将在当前镜像之上的新层中执行任何命令并提交结果。生成的已提交映像将用于下一步中。
``` ```
```shell ``` shell
# 示例 # 示例
FROM busybox FROM busybox
WORKDIR /app WORKDIR /app
@ -307,6 +306,7 @@ RUN ["/bin/sh", "-c", "echo exec方式执行后写入的内容 > demo2.txt"]
# cat demo.txt 查看内容 # cat demo.txt 查看内容
``` ```
+ CMD + CMD
> CMD命令设置容器启动后默认执行的命令及其参数但CMD设置的命令能够被docker run命令后面的命令行参数替换。 > CMD命令设置容器启动后默认执行的命令及其参数但CMD设置的命令能够被docker run命令后面的命令行参数替换。
@ -317,4 +317,3 @@ CMD ["executable","param1","param2"] (执行形式,这是首选形式)
CMD ["param1","param2"]作为ENTRYPOINT 的默认参数) CMD ["param1","param2"]作为ENTRYPOINT 的默认参数)
CMD command param1 param2 (外壳形式) CMD command param1 param2 (外壳形式)
``` ```

Loading…
Cancel
Save