您的位置:首页 > 运维架构 > Docker

Dockerfile中CMD的用法

2017-07-02 11:11 387 查看
Dockerfile中CMD的用法

root@ubuntu:~# cd /dockerfile/df_test3/
root@ubuntu:/dockerfile/df_test3#cat Dockerfile
# 设置基本的镜像,后续命令都以这个镜像为基础
FROM ubuntu
# 作者信息
MAINTAINER shangwu
# RUN命令会在上面指定的镜像里执行任何命令
RUN apt-get update
RUN apt-get install -y nginx

#暴露ssh端口
EXPOSE 80
#exec模式
CMD ["/usr/sbin/nginx", "-g","daemon off;"]
root@ubuntu:/dockerfile/df_test3#
root@ubuntu:/dockerfile/df_test3#docker build -t="df_test3" .
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon
Step 0 : FROM ubuntu
--->dc8dd8718e57
Step 1 : MAINTAINER shangwu
--->Using cache
--->cd3d00722426
Step 2 : RUN apt-get update
--->Using cache
--->0096fe9ac7c4
Step 3 : RUN apt-get install -y nginx
--->Using cache
--->c8b93cc747d7
Step 4 : EXPOSE 80
--->Using cache
--->266559c6bc7f
Step 5 :CMD /usr/sbin/nginx -g daemon off;
--->Running in c56286fba0c3
--->ea94d0b70edb
Removing intermediate container c56286fba0c3
Successfully built ea94d0b70edb
root@ubuntu:/dockerfile/df_test3#
root@ubuntu:/dockerfile/df_test3#docker run -p 80 --name cmd_test1 -d df_test3
root@ubuntu:/dockerfile/df_test3# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
42ce96c9e443 df_test3:latest "/usr/sbin/nginx -g 9seconds ago Up 9 seconds 0.0.0.0:32770->80/tcp cmd_test1
root@ubuntu:/dockerfile/df_test3#
root@ubuntu:/dockerfile/df_test3#curl http://127.0.0.1:32770 root@ubuntu:/dockerfile/df_test3#

说明:
1)Dockerfile启动的时候会执行Dockerfile中的CMD命令;

 

 

root@ubuntu:~# docker run -p 80 --name cmd_test2 -ddf_test3 /bin/bash
3dfabb61b6538dc97ffdb7aeddcb96b2dc45cec3614d3ffc86e03bcc32daed4c
root@ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
42ce96c9e443 df_test3:latest "/usr/sbin/nginx -g 14 minutes ago Up 14 minutes 0.0.0.0:32770->80/tcp cmd_test1
root@ubuntu:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3dfabb61b653 df_test3:latest "/bin/bash" 28 seconds ago Exited (0) 28 seconds ago cmd_test2
42ce96c9e443 df_test3:latest "/usr/sbin/nginx -g 14minutes ago Up 14 minutes 0.0.0.0:32770->80/tcp cmd_test1
root@ubuntu:~#
说明:
1)上面启动的容器并没有执行Dockerfile中的CMD命令;
2)/bin/bash将Dockerfile中的CMD命令替换了;


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: