Dockerfile中CMD的用法

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命令替换了;
 


 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值