7、DockerFile
2021-08-07 本文已影响0人
chanyi
dockerfile是一个脚本,可以通过此脚本生成一个镜像
1、dockerfile编写
1、dockerfile常用的指令
- 指令都是大写字母
- 指令是从上往下执行的
-
#
表示注释 - 每个指令都会创建提交一个新的镜像层,每一次操作都是一次分层
层级又下往上依次是bootFS
->rootFS
->镜像
->容器
FROM
基础镜像,相当于父镜像
MAINTAINER
镜像制作者,一般是姓名+邮箱
RUN
镜像构建的时候需要运行的命令
ADD
给镜像中需要添加进去的内容
WORKDIR
镜像的工作目录
VOLUME
挂载的目录
EXPOSE
暴露的端口配置
CMD
指定容器启动的时候要运行的命令,只有最后一个会生效(run了镜像之后马上执行最后一个)
ENTRYPOINT
也是指定容器启动时运行的命令,可以追加命令(可以在run的命令中追加执行的命令)
ONBUILD
当构建一个被继承的DockerFile时 会运行ONBUILD
的指令,触发指令
COPY
类似ADD
,将文件拷贝到镜像中
ENV
设置环境变量
2、dockerfile创建实例
(1)、创建一个自己的centos
官方的centos省略掉了很多命令,比如vim
ipconfig
FROM centos
MAINTAINER author<123456@gmail.com>
#设置环境变量
ENV MYPATH /usr/local
#设置工作目录
WORKDIR $MYPATH
#增加要运行的命令
RUN yum -y install vim
RUN yum -y install net-tools
#暴露端口
EXPOSE 80
#执行命令
CMD /bin/bash
2、docker build构建镜像
docker build
命令
docker build -f dockerfile文件 -t 新镜像的名称:版本号 .
dockerfile文件的默认命名为Dockerfile
,如果新建的dockerfile文件已经命名为Dockerfile
了,则不需要在用-f
指定对应的文件了
3、docker run运行镜像
运行生成的镜像,然后检查配置是否生效
docker run -it 镜像名
可以通过docker history 镜像id
查看镜像构建的过程
4、docker push发布镜像(DockerHub/阿里云镜像仓库)
- 发布到DockerHub
(1)、先去hub.docker.com中注册账号
(2)、push前先执行docker login -u 用户名
(3)、提交镜像docker push 用户名/镜像名称:版本号
注意
这里如果提示已经存在的话,则可以使用docker tag 镜像id tag名称
新创建一个tag,然后push新的tag的镜像即可
- 发布到阿里云镜像
(1)、登录阿里云
(2)、找到容器镜像服务
(3)、创建命名空间,创建容器镜像
(4)、按照对应的镜像容器的说明,先docker login
然后再docker push