构建步骤:
1、编写一个dockerfile文件
2、docker build构建成为一个镜像
3、docker run运行镜像
4、docker push发布镜像(dockerHub、阿里云镜像仓库)
#dockerfile常用指令
FROM #基础镜像
MAINTAINER #镜像是谁写的 eg:姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD #添加内容 tomcat压缩包
WORKDIR #镜像的工作目录
VOLUME #挂载卷
EXPOST #暴露端口,跟-p一个原理
CMD #容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT #容器启动的时候要运行的命令,可以追加命令
ONBILED #当构建一个被继承dockerfile 这个时候就会触发onbuild指令
COPY #类似ADD命令,将文件拷贝到镜像中
ENV #构建的时候设置环境变量
[root@iZuf6bqi9d493xdldgnd5eZ ~]# cat dockerfile
FROM centos
MAINTAINER jidu<18538053728@163.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "----end----"
CMD /bin/bash
#构建mycentos镜像
[root@iZuf6bqi9d493xdldgnd5eZ ~]# docker build -f dockerfile -t mycentos:1.0 .
[root@iZuf6bqi9d493xdldgnd5eZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mycentos 1.0 df2eeba64bd5 About a minute ago 291MB
hello-world latest d1165f221234 2 months ago 13.3kB
centos latest 300e315adb2f 5 months ago 209MB
[root@iZuf6bqi9d493xdldgnd5eZ ~]#
#运行新构建的容器
[root@iZuf6bqi9d493xdldgnd5eZ ~]# docker run -it df2eeba64bd5 bash
#默认进入工作目录
[root@acc0f1fad8ca local]#
#CMD和ENTRYPOINT的区别
CMD #容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT #容器启动的时候要运行的命令,可以追加命令
#CMD
[root@iZuf6bqi9d493xdldgnd5eZ ~]# cat dockerfile
FROM centos
CMD ["ls","-a"]
[root@iZuf6bqi9d493xdldgnd5eZ ~]# docker build -f dockerfile -t mycentos1.3 .
Successfully built f6f206201895
Successfully tagged mycentos1.3:latest
[root@iZuf6bqi9d493xdldgnd5eZ ~]#
[root@iZuf6bqi9d493xdldgnd5eZ ~]# docker run f6f206201895 -l
docker: Error response from daemon: OCI runtime create failed: container_linux.go:367: starting container process caused: exec: "-l": executable file not found in $PATH: unknown.
[root@iZuf6bqi9d493xdldgnd5eZ ~]#
#ENTRYPOINT
[root@iZuf6bqi9d493xdldgnd5eZ ~]# cat dockerfile
FROM centos
MAINTAINER jidu<18538053728@163.com>
ENTRYPOINT ["ls","-a"]
[root@iZuf6bqi9d493xdldgnd5eZ ~]# docker build -f dockerfile -t mycentos:1.2 .
[root@iZuf6bqi9d493xdldgnd5eZ ~]# docker run c07148370383 -l
drwxr-xr-x 1 root root 4096 May 21 14:48 etc
drwxr-xr-x 2 root root 4096 Nov 3 2020 home
#镜像原理