docker 保留关键字

docker 保留关键字

 

 验证ENV,WORKDIR,RUN,CMD指令

# 基础镜像,基于centos
FROM centos

# 设置维护者的姓名、邮箱地址
MAINTAINER leyton<leyton01@protonmail.com>

# 配置环境变量
ENV MY_PATH /usr/local

# 设置默认的工作目录
WORKDIR $MY_PATH

# 执行两条安装语句来安装vim、net-tools
RUN yum -y install vim
RUN yum -y install net-tools

# 容器启动时运行的命令
CMD echo $MY_PATH
CMD echo "success............ok"
CMD /bin/bash


# docker run -it centos:v1                #默认是最后cmd指令生效了
[root@c5701b36bcaa local]# pwd
/usr/local


# docker run -it centos:v1  ls -al /tmp    #覆盖了镜像中的cmd指令
total 36
drwxrwxrwt 1 root root 4096 Nov  3 09:01 .
drwxr-xr-x 1 root root 4096 Nov  3 12:13 ..
drwxrwxrwt 2 root root 4096 Aug  9 21:40 .ICE-unix
drwxrwxrwt 2 root root 4096 Aug  9 21:40 .Test-unix
drwxrwxrwt 2 root root 4096 Aug  9 21:40 .X11-unix
drwxrwxrwt 2 root root 4096 Aug  9 21:40 .XIM-unix
drwxrwxrwt 2 root root 4096 Aug  9 21:40 .font-unix
-rwx------ 1 root root  671 Aug  9 21:40 ks-script-2n9owwnh
-rwx------ 1 root root 1379 Aug  9 21:40 ks-script-xm1o5azb

 build一个镜像的步骤和过程如下:

验证多个CMD只有最后一个生效

# 前面内容一样
# 容器启动时运行的命令
CMD echo $MY_PATH
CMD /bin/bash
CMD echo "success............ok"

[root@db004-hf /opt/software/docker] em1 = 172.16.110.11
# docker run -it centos:v2
success............ok
[root@db004-hf /opt/software/docker] em1 = 172.16.110.11

# 运行后看到
# docker run -it centos:v2          #打印出来的是最后一个CMD,并不是第二个cmd进入容器后,然后再打印
success............ok

验证多个ENTRYPOINT的情况下

FROM centos
CMD echo "Hello world123"
ENTRYPOINT echo "Hello world11"
ENTRYPOINT echo "Hello world22"

# docker run -it t1:v2
Hello world22

发现虽然有cmd和entrypoint,但是只有最后一个entrypoint有效。cmd和第一个entrypoint是无效的。

ENTRYPOINT

ENTRYPOINT指令允许您配置将作为可执行文件运行的容器。它看起来类似于CMD,因为它还允许您使用参数指定命令。区别在于当Docker容器使用命令行参数运行时,ENTRYPOINT命令不会忽略参数。

ENTRYPOINT 有两种形式:

  • ENTRYPOINT ["executable", "param1", "param2"] (exec 形式,推荐)
  • ENTRYPOINT command param1 param2 (shell 形式)

选择ENTRYPOINT形式时要非常小心,因为不同形式执行结果会有很大差异。

ENTRYPOINT ["/bin/echo", "Hello"]
CMD ["world"]

#当容器运行docker run -it 时将输出
Hello world

但是当容器运行docker run -it  tom时,将输出
Hello tom

volume数据卷

参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值