1. CMD语法部分:
2. 新建一个Dockerfile文件:
3. 在Dockerfile中添加一些内容:
FROM centos:lastest
MAINTAINER jinison
COPY ./a.txt /
CMD ["/bin/bash"]
4. 构建镜像的命令:
docker build -t mycentos2:v1.0 .
一定要包含Dockerfile文件和在这个文件中涉及到的文件,在这个例子中都在当前目录下 ,在不对Dokcerfile指定的话,在当前目录(.
)中寻找Dockerfile,并按照这个文件的定义说明来构建镜像
- RUN 命令执行shell脚本,完成构建进行时所要进行的操作
5. 使用RUN命令和ENV命令的Dockerfile文件还配置对应jdk环境
# ADD命令
ADD ./jdk-8u60-linux-x64.tar.gz
-
在使用ADD命令之后,获取到的文件会把解压的原始文件删除,减少镜像的大小。
-
CMD命令
CMD [“executable”,“param1”,“param2”] (exec form, this is the preferred form)
-
WORKDIR
- 指定进入容器之后的落脚点,如果在之后的命令运行中没有对目录进行切换的话,就一直在这个目录中
- 在启动容器中,进入容器的时候会直接进入到这个WORKDIR指定的目录,而不是默认进入根目录下面
-
EXPOSE
容器对外暴露的端口号
指定宿主机上暴露的端口为8080,访问宿主机8080端口的时候会访问到容器的8080端口上去,但在容器里面也需要把容器的8080端口暴露出来
6. 最终完成的Dockerfile文件内容如下:
如果获取不到端口号的情况下查看防火墙的运行情况,看是不是防火墙把请求拦截了
-
ENTRYPOINT会将CMD中的内容追加在ENTRYPOINT的中语句的后面,而且和这两个语句的相对顺序无关
如果存在多条CMD或者ENTRYPOINT语句的时候,这个时候只会执行最后一句
如果使用这种方式来进行
会将启动时候的指令追加到ENTRYPINT之后
不会执行CMD中所包含的命令