016 Dockerfile常用指令

是时候系统学习 Dockerfile 了。

下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档。

FROM

指定 base 镜像。第一条必须是FROM

MAINTAINER

设置镜像的作者,可以是任意字符串。

COPY

将文件从 build context 复制到镜像。

COPY 支持两种形式:

  1. COPY src dest
  2. COPY [“src”, “dest”]

注意:src 只能指定 build context 中的文件或目录。

ADD

与 COPY 类似,从 build context 复制文件到镜像。不同的是,如果 src 是归档文件(tar, zip, tgz, xz

等),文件会被自动解压到 dest。

ENV

设置环境变量,环境变量可被后面的指令使用。

[root@docker ~]# pwd #确定Dockerfile工作目录
/root
[root@docker ~]# ls #当前/root目录下空的
[root@docker ~]# touch tmpfile2 #创建空文档tmpfile2
[root@docker ~]# cp /etc/passwd . #将/etc/passwd文件拷贝到/root
[root@docker ~]# tar -cvzf passwd.tar.gz passwd #将passwd文件做出归档文件
passwd.tar.gz
passwd
[root@docker ~]# rm passwd #删除passwd文件
rm: remove regular file 'passwd'? y
[root@docker ~]# vim Dockerfile #编辑Dockerfile写入如下内容
# my dockerfile
FROM busybox
MAINTAINER 6946630@qq.com
WORKDIR /testdir
RUN touch tmpfile1
COPY ["tmpfile2","."]
ADD ["passwd.tar.gz","."]
ENV WELCOME "You are in my container,welcome!"
[root@docker ~]# ls #最后目录中有三个文件
Dockerfile passwd.tar.gz tmpfile2
[root@docker ~]# docker build -t my-image . #构建新镜像my-image

017 RUN vs CMD vs ENTRYPOINT

RUN、CMD 和 ENTRYPOINT 这三个 Dockerfile 指令看上去很类似,很容易混淆。本节将通过实践详细

讨论它们的区别。

简单的说:

  1. RUN 执行命令并创建新的镜像层,RUN 经常用于安装软件包。
  2. CMD 设置容器启动后默认执行的命令及其参数,但 CMD 能够被 docker run 后面跟的命令行参

数替换。

  1. ENTRYPOINT 配置容器启动时运行的命令。

下面我们详细分析。

Shell 和 Exec 格式

我们可用两种方式指定 RUN、CMD 和 ENTRYPOINT 要运行的命令:Shell 格式和 Exec 格式,二者在使

用上有细微的区别。

Shell 格式

root@docker ~ 11:50:48]# vim Dockerfile
FROM busybox
ENV name xmy
ENTRYPOINT echo "Hello, $name"
[root@docker ~ 13:57:18]# docker build -t dockerfile1 .
[+] Building 1.7s (5/5) FINISHED                                docker:default
 => [internal] load build definition from Dockerfile                      0.0s
 => => transferring dockerfile: 94B                                       0.0s
 => [internal] load metadata for docker.io/library/busybox:latest         1.6s
 => [internal] load .dockerignore                                         0.0s
 => => transferring context: 2B                                           0.0s
 => CACHED [1/1] FROM docker.io/library/busybox:latest@sha256:1487d0af5f  0.0s
 => exporting to image                                                    0.0s
 => => exporting layers                                                   0.0s
 => => writing image sha256:c1b8220c6083bb17b61ed1548f090e7f54e6a955ea43  0.0s
 => => naming to docker.io/library/dockerfile1                            0.0s
[root@docker ~ 13:57:47]# docker run dockerfile1 .
hello, xmy

Exec 格式

[root@docker ~ 13:58:04]# vim Dockerfile
FROM busybox
ENV name xmy
ENTRYPOINT ["/bin/echo","Hello, $name"]
[root@docker ~ 13:58:59]# docker build -t dockerfile2 .
[+] Building 0.5s (5/5) FINISHED                                docker:default
 => [internal] load build definition from Dockerfile                      0.0s
 => => transferring dockerfile: 103B                                      0.0s
 => [internal] load metadata for docker.io/library/busybox:latest         0.5s
 => [internal] load .dockerignore                                         0.0s
 => => transferring context: 2B                                           0.0s
 => CACHED [1/1] FROM docker.io/library/busybox:latest@sha256:1487d0af5f  0.0s
 => exporting to image                                                    0.0s
 => => exporting layers                                                   0.0s
 => => writing image sha256:778b52143a6972f51ffa3c3700148d5adef6f9a261a6  0.0s
 => => naming to docker.io/library/dockerfile2                            0.0s
[root@docker ~ 13:59:05]# docker run dockerfile2 .
hello, $name .
[root@docker ~ 13:59:12]# vim Dockerfile
FROM busybox
ENV name xmy
ENTRYPOINT ["/bin/sh", "-c", "echo Hello, $name"]
[root@docker ~ 14:00:08]# docker build -t dockerfile3 .
[+] Building 0.5s (5/5) FINISHED                                docker:default
 => [internal] load build definition from Dockerfile                      0.0s
 => => transferring dockerfile: 111B                                      0.0s
 => [internal] load metadata for docker.io/library/busybox:latest         0.4s
 => [internal] load .dockerignore                                         0.0s
 => => transferring context: 2B                                           0.0s
 => CACHED [1/1] FROM docker.io/library/busybox:latest@sha256:1487d0af5f  0.0s
 => exporting to image                                                    0.0s
 => => exporting layers                                                   0.0s
 => => writing image sha256:41b72d7c2c4581c389898d0e7da9999b331b7fb998c1  0.0s
 => => naming to docker.io/library/dockerfile3                            0.0s
[root@docker ~ 14:00:13]# docker run dockerfile3 .
hello, xmy

CMD

CMD 指令允许用户指定容器的默认执行的命令。

此命令会在容器启动且 docker run 没有指定其他命令时运行。

  1. 如果 docker run 指定了其他命令,CMD 指定的默认命令将被忽略。
  2. 如果 Dockerfile 中有多个 CMD 指令,只有最后一个 CMD 有效。

CMD 有三种格式:

  1. Exec 格式:CMD [“executable”,“param1”,“param2”] 这是 CMD 的推荐格式。
  2. CMD [“param1”,“param2”] 为 ENTRYPOINT 提供额外的参数,此时 ENTRYPOINT 必须使用 Exec

格式。

  1. Shell 格式:CMD command param1 param2

Exec 和 Shell 格式前面已经介绍过了。

第二种格式 CMD [“param1”,“param2”] 要与 Exec 格式 的 ENTRYPOINT 指令配合使用,其用途是为

ENTRYPOINT 设置默认的参数。我们将在后面讨论 ENTRYPOINT 时举例说明。

下面看看 CMD 是如何工作的。Dockerfile 如下:

[root@docker ~]# vim Dockerfile
FROM busybox
CMD echo "Hello,world"
[root@docker ~ 14:44:32]# docker run -it dockerfile5
hello,world
[root@docker ~ 14:44:47]# docker run -it dockerfile5 /bin/sh
/ # exit

ENTRYPOINT

ENTRYPOINT 指令可让容器以应用程序或者服务的形式运行。

ENTRYPOINT 看上去与 CMD 很像,它们都可以指定要执行的命令及其参数。不同的地方在于

ENTRYPOINT 不会被忽略,一定会被执行,即使运行 docker run 时指定了其他命令。ENTRYPOINT 有两种格式:

  1. Exec 格式:ENTRYPOINT [“executable”, “param1”, “param2”] 这是 ENTRYPOINT 的推荐格式。
  2. Shell 格式:ENTRYPOINT command param1 param2

在为 ENTRYPOINT 选择格式时必须小心,因为这两种格式的效果差别很大。

Exec 格式

ENTRYPOINT 的 Exec 格式用于设置要执行的命令及其参数,同时可通过 CMD 提供额外的参数。

ENTRYPOINT 中的参数始终会被使用,而 CMD 的额外参数可以在容器启动时动态替换掉。

比如下面的 Dockerfile :

[root@docker ~ 14:45:12]# vim Dockerfile
FROM busybox
ENTRYPOINT ["/bin/echo", "Hello"]
CMD ["world"]
[root@docker ~ 14:46:41]# docker build -t dockerfile6 .
[+] Building 0.6s (5/5) FINISHED                                docker:default
 => [internal] load build definition from Dockerfile                      0.0s
 => => transferring dockerfile: 97B                                       0.0s
 => [internal] load metadata for docker.io/library/busybox:latest         0.5s
 => [internal] load .dockerignore                                         0.0s
 => => transferring context: 2B                                           0.0s
 => CACHED [1/1] FROM docker.io/library/busybox:latest@sha256:1487d0af5f  0.0s
 => exporting to image                                                    0.0s
 => => exporting layers                                                   0.0s
 => => writing image sha256:ca804453d33a65bad561de32b81d0a9dee109ec6505f  0.0s
 => => naming to docker.io/library/dockerfile6                            0.0s
[root@docker ~ 14:46:58]# docker run -it dockerfile6
hello world
[root@docker ~ 14:47:16]# docker run -it dockerfile6 xmy
hello xmy

Shell 格式

ENTRYPOINT 的 Shell 格式会忽略任何 CMD 或 docker run 提供的参数。

比如下面的 Dockerfile :

[root@docker ~ 14:48:33]# vim Dockerfile
FROM busybox
ENTRYPOINT echo "Hello"
CMD ["world"]
[root@docker ~ 14:49:09]# docker build -t dockerfile7 .
[+] Building 1.3s (5/5) FINISHED                                docker:default
 => [internal] load build definition from Dockerfile                      0.0s
 => => transferring dockerfile: 88B                                       0.0s
 => [internal] load metadata for docker.io/library/busybox:latest         1.2s
 => [internal] load .dockerignore                                         0.0s
 => => transferring context: 2B                                           0.0s
 => CACHED [1/1] FROM docker.io/library/busybox:latest@sha256:1487d0af5f  0.0s
 => exporting to image                                                    0.0s
 => => exporting layers                                                   0.0s
 => => writing image sha256:124ba07f6cf01f8c1e60c32c23b47b9916de459db074  0.0s
 => => naming to docker.io/library/dockerfile7                            0.0s
[root@docker ~ 14:49:15]# docker run -it dockerfile7
hello
[root@docker ~ 14:49:20]# docker run -it dockerfile7 xmy
hello

Dockerfile案例:配置SSH镜像

[root@docker ~ 15:46:21]# vim centos.ssh.dockerfile
FROM centos:8.4.2105
MAINTAINER xmy
RUN minorver=8.4.2105 && \
sed -e "s|^mirrorlist=|#mirrorlist=|g" \
-e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=https://mirrors.aliyun.com/centos-vault/$minorver|g" \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
RUN yum install -y openssh-server
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
RUN echo "root:huawei" | chpasswd
EXPOSE 22
CMD ["/usr/sbin/sshd","-D"]
[root@docker ~ 15:47:34]# docker build -t centos:ssh -f centos.ssh.dockerfile .
[+] Building 141.3s (10/10) FINISHED                                                   docker:default
 => [internal] load build definition from centos.ssh.dockerfile                                  0.0s
 => => transferring dockerfile: 535B                                                             0.0s
 => [internal] load metadata for docker.io/library/centos:8.4.2105                               7.3s
 => [internal] load .dockerignore                                                                0.0s
 => => transferring context: 2B                                                                  0.0s
 => [1/6] FROM docker.io/library/centos:8.4.2105@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67  98.0s
 => => resolve docker.io/library/centos:8.4.2105@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d  0.0s
 => => sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 762B / 762B       0.0s
 => => sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc 529B / 529B       0.0s
 => => sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6 2.14kB / 2.14kB   0.0s
 => => sha256:a1d0c75327776413fa0db9ed3adcdbadedc95a662eb1d360dad82bb913f8a1 83.52MB / 83.52MB  92.0s
 => => extracting sha256:a1d0c75327776413fa0db9ed3adcdbadedc95a662eb1d360dad82bb913f8a1d1        5.8s
 => [2/6] RUN minorver=8.4.2105 && sed -e "s|^mirrorlist=|#mirrorlist=|g" -e "s|^#baseurl=http:  1.6s
 => [3/6] RUN yum install -y openssh-server                                                     31.3s
 => [4/6] RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key                                     1.0s
 => [5/6] RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key                                 0.6s
 => [6/6] RUN echo "root:huawei" | chpasswd                                                      0.6s
 => exporting to image                                                                           0.9s
 => => exporting layers                                                                          0.7s
 => => writing image sha256:29a83cb13ca956e0117a534d67cdf1bbf21fa2825e7e666dcd2963702b905229     0.0s
 => => naming to docker.io/library/centos:ssh                                                    0.0s
[root@docker ~ 15:50:08]# docker history centos:ssh
IMAGE          CREATED              CREATED BY                                      SIZE      COMMENT
29a83cb13ca9   35 seconds ago       CMD ["/usr/sbin/sshd" "-D"]                     0B        buildkit.dockerfile.v0
<missing>      35 seconds ago       EXPOSE map[22/tcp:{}]                           0B        buildkit.dockerfile.v0
<missing>      35 seconds ago       RUN /bin/sh -c echo "root:huawei" | chpasswd…   1.77kB    buildkit.dockerfile.v0
<missing>      35 seconds ago       RUN /bin/sh -c ssh-keygen -t ecdsa -f /etc/s…   695B      buildkit.dockerfile.v0
<missing>      36 seconds ago       RUN /bin/sh -c ssh-keygen -t rsa -f /etc/ssh…   3.18kB    buildkit.dockerfile.v0
<missing>      37 seconds ago       RUN /bin/sh -c yum install -y openssh-server…   51.9MB    buildkit.dockerfile.v0
<missing>      About a minute ago   RUN /bin/sh -c minorver=8.4.2105 && sed -e "…   17.6kB    buildkit.dockerfile.v0
<missing>      About a minute ago   MAINTAINER my                                   0B        buildkit.dockerfile.v0
<missing>      4 years ago          /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B
<missing>      4 years ago          /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B
<missing>      4 years ago          /bin/sh -c #(nop) ADD file:805cb5e15fb6e0bb0…   231MB
[root@docker ~ 15:50:42]# docker run -d -p 2022:22 --name sshtest centos:ssh
3c8fd49b13cb267bef2dc4c02702e295ebd91265a08fdb0ec1f22b08ba137124
[root@docker ~ 15:51:51]# docker ps
CONTAINER ID   IMAGE        COMMAND               CREATED         STATUS         PORTS                                   NAMES
3c8fd49b13cb   centos:ssh   "/usr/sbin/sshd -D"   7 seconds ago   Up 5 seconds   0.0.0.0:2022->22/tcp, :::2022->22/tcp   sshtest
8be94e026124   my-image     "sh"                  4 hours ago     Up 4 hours                                             kind_elgamal
[root@docker ~ 15:51:57]# ssh root@localhost -p 2022
The authenticity of host '[localhost]:2022 ([::1]:2022)' can't be established.
ECDSA key fingerprint is SHA256:KP/57QYPPEPNEbYwZVI75YDNeDbSlf20xB3qPF9qiqo.
Are you sure you want to continue connecting (yes/no/[fingerprint])? y
Please type 'yes', 'no' or the fingerprint: yes
Warning: Permanently added '[localhost]:2022' (ECDSA) to the list of known hosts.
root@localhost's password:
Permission denied, please try again.
root@localhost's password:
Permission denied, please try again.
root@localhost's password:
"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8)."
Last failed login: Sat May  9 07:52:44 UTC 2026 from 172.17.0.1 on ssh:notty
There were 2 failed login attempts since the last successful login.
[root@3c8fd49b13cb ~]# quit
-bash: quit: command not found
[root@3c8fd49b13cb ~]# exit
logout
Connection to localhost closed.

Dockerfile案例:自定义httpd镜像

[root@docker ~ 15:54:07]# vim httpd.dockerfile
FROM centos:8.4.2105
MAINTAINER gaoqiaodong
RUN minorver=8.4.2105 \
&& sed -e "s|^mirrorlist=|#mirrorlist=|g" -e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=https://mirrors.aliyun.com/centos-vault/$minorver|g" -i.bak /etc/yum.repos.d/CentOS-*.repo
RUN yum install -y httpd && yum clean all && rm -rf /var/cache/yum
COPY index.html /var/www/html/
EXPOSE 80
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]
[root@docker ~ 15:54:42]# echo hello world > index.html
[root@docker ~ 15:55:10]# docker build -t httpd:centos -f httpd.dockerfile .
[+] Building 69.8s (9/9) FINISHED                                                      docker:default
 => [internal] load build definition from httpd.dockerfile                                       0.0s
 => => transferring dockerfile: 469B                                                             0.0s
 => [internal] load metadata for docker.io/library/centos:8.4.2105                               1.8s
 => [internal] load .dockerignore                                                                0.0s
 => => transferring context: 2B                                                                  0.0s
 => [1/4] FROM docker.io/library/centos:8.4.2105@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d  0.0s
 => [internal] load build context                                                                0.0s
 => => transferring context: 49B                                                                 0.0s
 => CACHED [2/4] RUN minorver=8.4.2105 && sed -e "s|^mirrorlist=|#mirrorlist=|g" -e "s|^#baseur  0.0s
 => [3/4] RUN yum install -y httpd && yum clean all && rm -rf /var/cache/yum                    67.9s
 => [4/4] COPY index.html /var/www/html/                                                         0.0s
 => exporting to image                                                                           0.1s
 => => exporting layers                                                                          0.1s
 => => writing image sha256:1fd2344332e685a12eacb4a42bb23c32dd30af565c296e2b41e37dae55ca38b4     0.0s
 => => naming to docker.io/library/httpd:centos                                                  0.0s
[root@docker ~ 15:56:44]# docker history httpd:centos
IMAGE          CREATED          CREATED BY                                      SIZE      COMMENT
1fd2344332e6   29 seconds ago   CMD ["/usr/sbin/httpd" "-DFOREGROUND"]          0B        buildkit.dockerfile.v0
<missing>      29 seconds ago   EXPOSE map[80/tcp:{}]                           0B        buildkit.dockerfile.v0
<missing>      29 seconds ago   COPY index.html /var/www/html/ # buildkit       12B       buildkit.dockerfile.v0
<missing>      29 seconds ago   RUN /bin/sh -c yum install -y httpd && yum c…   21.5MB    buildkit.dockerfile.v0
<missing>      7 minutes ago    RUN /bin/sh -c minorver=8.4.2105 && sed -e "…   17.6kB    buildkit.dockerfile.v0
<missing>      7 minutes ago    MAINTAINER gaoqiaodong                          0B        buildkit.dockerfile.v0
<missing>      4 years ago      /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B
<missing>      4 years ago      /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B
<missing>      4 years ago      /bin/sh -c #(nop) ADD file:805cb5e15fb6e0bb0…   231MB
[root@docker ~ 15:57:13]# docker run -d -p 80:80 --name myweb httpd:centos
32f58576da4dd56080fa825381b47a9ad510bf50b98ccc6070161d575c247dc6
[root@docker ~ 15:57:40]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                   NAMES
32f58576da4d   httpd:centos   "/usr/sbin/httpd -DF…"   8 seconds ago   Up 7 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp       myweb
3c8fd49b13cb   centos:ssh     "/usr/sbin/sshd -D"      5 minutes ago   Up 5 minutes   0.0.0.0:2022->22/tcp, :::2022->22/tcp   sshtest
8be94e026124   my-image       "sh"                     4 hours ago     Up 4 hours                                             kind_elgamal
[root@docker ~ 15:57:47]# curl localhost
hello world

Dockerfile案例:自定义mycentosjava8

[root@docker myfile 16:45:09]# vim Dockerfile
FROM centos:8.4.2105
MAINTAINER my

ENV MYPATH /usr/local
WORKDIR $MYPATH

# 配置 yum 源(写成一行)
RUN minorver=8.4.2105 && sed -e "s|^mirrorlist=|#mirrorlist=|g" -e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=https://mirrors.aliyun.com/centos-vault/$minorver|g" -i.bak /etc/yum.repos.d/CentOS-*.repo

# 安装软件
RUN yum -y install vim
RUN yum -y install net-tools
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java

# 添加 JDK
ADD jdk-8u461-linux-x64.tar.gz /usr/local/java/

# Java 环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_461
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

EXPOSE 80

# 启动命令(合并三个 CMD)
CMD echo $MYPATH && echo "success---ok" && /bin/bash
[root@docker myfile 16:47:24]# docker build -t centosjava8:461
ERROR: "docker buildx build" requires exactly 1 argument.
See 'docker buildx build --help'.

Usage:  docker buildx build [OPTIONS] PATH | URL | -

Start a build
[root@docker myfile 16:47:27]# docker build -t centosjava8:461 .
[+] Building 58.1s (13/13) FINISHED                                                    docker:default
 => [internal] load build definition from Dockerfile                                             0.0s
 => => transferring dockerfile: 875B                                                             0.0s
 => [internal] load metadata for docker.io/library/centos:8.4.2105                               2.7s
 => [internal] load .dockerignore                                                                0.0s
 => => transferring context: 2B                                                                  0.0s
 => CACHED [1/8] FROM docker.io/library/centos:8.4.2105@sha256:a27fd8080b517143cbbbab9dfb7c8571  0.0s
 => [internal] load build context                                                                3.9s
 => => transferring context: 79.45MB                                                             3.9s
 => [2/8] WORKDIR /usr/local                                                                     0.1s
 => [3/8] RUN minorver=8.4.2105 && sed -e "s|^mirrorlist=|#mirrorlist=|g" -e "s|^#baseurl=http:  1.8s
 => [4/8] RUN yum -y install vim                                                                36.0s
 => [5/8] RUN yum -y install net-tools                                                           4.0s
 => [6/8] RUN yum -y install glibc.i686                                                          8.7s
 => [7/8] RUN mkdir /usr/local/java                                                              0.8s
 => [8/8] ADD jdk-8u461-linux-x64.tar.gz /usr/local/java/                                        2.7s
 => exporting to image                                                                           1.1s
 => => exporting layers                                                                          1.1s
 => => writing image sha256:1846f520e9a7ec088adae3c389b13a23ba839b1d42b083b57e3a184096d05275     0.0s
 => => naming to docker.io/library/centosjava8:461                                               0.0s
[root@docker myfile 16:49:04]# docker images
REPOSITORY                   TAG       IMAGE ID       CREATED              SIZE
centosjava8                  461       1846f520e9a7   About a minute ago   537MB
httpd                        centos    1fd2344332e6   53 minutes ago       253MB
centos                       ssh       29a83cb13ca9   About an hour ago    283MB
my-image                     latest    358f35e5adf2   5 hours ago          4.42MB
image-debug                  latest    d9f1f51394d4   6 hours ago          4.42MB
xmy                          v2        d9f1f51394d4   6 hours ago          4.42MB
vim-1-dockerfile-3           latest    9d071477d1b7   6 hours ago          213MB
vim-1-dockerfile-2           latest    bcc3d0fd9fb9   6 hours ago          213MB
vim-1                        latest    5e42e96ce759   7 hours ago          213MB
vim                          latest    7a12be773edc   7 hours ago          100MB
ubuntu-with-vim-dockerfile   latest    5081df56d3d7   7 hours ago          213MB
vim-1-dockerfile             latest    5081df56d3d7   7 hours ago          213MB
httpd                        latest    58d56e9057ae   3 days ago           117MB
ubuntu                       latest    30ba44506a6d   2 weeks ago          100MB
dockerfile2                  latest    778b52143a69   19 months ago        4.42MB
dockerfile1                  latest    c1b8220c6083   19 months ago        4.42MB
dockerfile5                  latest    9ff0c8a8f5a9   19 months ago        4.42MB
<none>                       <none>    72ac116e2bd9   19 months ago        4.42MB
dockerfile6                  latest    ca804453d33a   19 months ago        4.42MB
dockerfile7                  latest    124ba07f6cf0   19 months ago        4.42MB
centos.ssh.dockerfile        latest    124ba07f6cf0   19 months ago        4.42MB
dockerfile3                  latest    41b72d7c2c45   19 months ago        4.42MB
centos                       7         eeb6ee3f44bd   4 years ago          204MB
[root@docker myfile 16:50:17]# docker run -it centosjava8:461 /bin/bash
[root@96297bbe8443 local]# pwd
/usr/local
[root@96297bbe8443 local]# java-version
bash: java-version: command not found
[root@96297bbe8443 local]# java -version
java version "1.8.0_461"
Java(TM) SE Runtime Environment (build 1.8.0_461-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.461-b11, mixed mode)
[root@96297bbe8443 local]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.5  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:05  txqueuelen 0  (Ethernet)
        RX packets 8  bytes 656 (656.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

更多推荐