dockerfile指令
016 Dockerfile常用指令
是时候系统学习 Dockerfile 了。
下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档。
FROM
指定 base 镜像。第一条必须是FROM
MAINTAINER
设置镜像的作者,可以是任意字符串。
COPY
将文件从 build context 复制到镜像。
COPY 支持两种形式:
- COPY src dest
- 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 指令看上去很类似,很容易混淆。本节将通过实践详细
讨论它们的区别。
简单的说:
- RUN 执行命令并创建新的镜像层,RUN 经常用于安装软件包。
- CMD 设置容器启动后默认执行的命令及其参数,但 CMD 能够被 docker run 后面跟的命令行参
数替换。
- 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 没有指定其他命令时运行。
- 如果 docker run 指定了其他命令,CMD 指定的默认命令将被忽略。
- 如果 Dockerfile 中有多个 CMD 指令,只有最后一个 CMD 有效。
CMD 有三种格式:
- Exec 格式:CMD [“executable”,“param1”,“param2”] 这是 CMD 的推荐格式。
- CMD [“param1”,“param2”] 为 ENTRYPOINT 提供额外的参数,此时 ENTRYPOINT 必须使用 Exec
格式。
- 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 有两种格式:
- Exec 格式:ENTRYPOINT [“executable”, “param1”, “param2”] 这是 ENTRYPOINT 的推荐格式。
- 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
更多推荐

所有评论(0)