当前位置:   article > 正文

Docker---初识DockerFile

Docker---初识DockerFile

初识DockerFile

一、DockerFile介绍

dockerfile是用来构建docker镜像的文件,命令参数脚本。构建步骤:

  • 编写一个dockerfile文件
  • docker build 构建成为一个镜像
  • docker run   运行镜像
  • docker push 发布镜像(DockerHub、阿里云镜像仓库)

二、DockerFile构建过程

1. DockerFile基础知识

  • 每个保留关键字(指令)都必须是大写字母。
  • 执行顺序:从上到下顺序执行。
  • #  表示注释
  • 每一个指令都会创建提交一个新的镜像层,并提交。

2. DockerFile指令说明

  • FROM   基础镜像,一切从这里开始构建
  • MAINTAINER    镜像是谁写的,姓名+邮箱
  • RUN       镜像构建的时候需要运行的命令
  • ADD       
  • WORKDIR   镜像的工作目录
  • VOLUME     挂载的目录
  • EXPOSE     暴露端口配置
  • CMD         指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代。
  • ENTRYPOINT   指定这个容器启动的时候要运行的命令,可以追加命令。
  • ONBUILD   当构建一个被继承DockerFile,这个时候就会运行ONBUILD的指令,触发指令。
  • COPY       类似ADD,将我们文件拷贝到镜像中。
  • ENV        构建的时候设置环境变量。

构建DockerFile

一、创建自己的 centos 镜像

1. 编写Dockerfile文件

  1. FROM centos
  2. MAINTAINER dongdong<158629568@qq.com>
  3. ENV MyPath /usr/local # 启动进入容器后,直接到这个目录下面了。
  4. WORKDIR $MyPath
  5. RUN yum -y install vim
  6. RUN yum -y install net-tools
  7. EXPOSE 80
  8. CMD echo $MyPath
  9. CMD echo "---end---"
  10. CMD /bin/bash

2. 通过Dockerfile文件构建镜像

  1. [root@localhost ~]# docker build -f dockerfile文件路径 -t 镜像名:[tag] .
  2. [root@localhost ~]# docker build -f mydockerfile -t mycentos:0.1 .

3. 查看自己构建的 centos 镜像

  1. [root@localhost ~]# docker images # 查看mycentos镜像是否生成
  2. [root@localhost ~]# docker run -it mycentos:0.1 # 运行镜像,生成容器
  3. [root@localhost ~]# docker history 镜像id # 查看镜像是怎么一步一步做起来的
  4. [root@localhost ~]# docker history 920636cc7d12

二、创建自己的 tomcat 镜像

1. 准备镜像文件tomcat压缩包,jdk的压缩包。我这里是:apache-tomcat-9.0.37.tar.gz、jdk-8u161-linux-x64.tar.gz。

2. 编写Dockerfile文件,官方命名:Dockerfile,这样在build的时候,会自动寻找这个文件,就不需要-f指定了。

  1. FROM centos
  2. MAINTAINER dongdong<158629568@qq.com>
  3. COPY readme.txt /usr/local/readme.txt
  4. ADD jdk-8u161-linux-x64.tar.gz /usr/local/
  5. ADD apache-tomcat-9.0.37.tar.gz /usr/local/
  6. RUN yum -y install vim
  7. RUN yum -y install net-tools
  8. ENV MyPath /usr/local
  9. WORKDIR $MyPath
  10. ENV JAVA_HOME /usr/local/jdk1.8.0_161
  11. ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  12. ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.37
  13. ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.37
  14. ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
  15. EXPOSE 8080
  16. CMD /usr/local/apache-tomcat-9.0.37/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.37/bin/logs/catalina.out

3. 构建镜像

[root@localhost ~]# docker build -t my_tomcat .        # . 代表当前路径,也可以写绝对路径。

4. 启动镜像,生成容器,并访问测试

  1. [root@localhost ~]# docker run -d -p 3120:8080 --name my_tomcat01 -v /home/tomcat/test:/usr/local/apache-tomcat-9.0.37/webapps/test -v /home/tomcat/logs:/usr/local/apache-tomcat-9.0.37/logs my_tomcat
  2. [root@localhost ~]# curl localhost:3120 # 访问测试
  3. [root@localhost ~]# docker exec -it 容器id /bin/bash # 进入容器
  4. [root@localhost ~]# docker exec -it 074b23e94d /bin/bash

5. 发布项目(由于做了卷挂载,我们直接在本地编写项目就可以发布了)

发布自己的镜像到DockerHub

一、注册自己的账号,地址:https://hub.docker.com/

二、在我们服务器上提交自己的镜像。

  1. [root@localhost ~]# docker login -u username # 使用用户名登陆docker hub
  2. [root@localhost ~]# docker login -u love666

三、登陆完毕后,就可以提交镜像了。使用docker push命令。

  1. [root@localhost ~]# docker push my_tomcat # 方式一:直接push自己的镜像到服务器上。
  2. [root@localhost ~]# docker tag e5de7fdf4d2e liumou/my_tomcat:1.0 # 方式二:先修改自己的镜像的信息(tag与名称),再发布。这里e5de7fdf4d2e是镜像id。
  3. [root@localhost ~]# docker push liumou/my_tomcat:1.0

发布自己的镜像到阿里云容器服务

一、登陆阿里云

二、找到容器镜像服务

三、创建命名空间

四、创建镜像仓库

五、查看镜像仓库信息,按照步骤来一步步提交

  1. [root@localhost ~]# sudo docker login --username=小刘_小田 registry.cn-hangzhou.aliyuncs.com
  2. [root@localhost ~]# sudo docker tag e5de7fdf4d2e registry.cn-hangzhou.aliyuncs.com/bilibili-dongdong/dongdong-niubi:1.0 # e5de7fdf4d2e是镜像id
  3. [root@localhost ~]# sudo docker push registry.cn-hangzhou.aliyuncs.com/bilibili-dongdong/dongdong-niubi:1.0

六、现在别人就可以使用你的镜像啦。通过docker pull、docker run。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/203042
推荐阅读
相关标签
  

闽ICP备14008679号