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文件

FROM centos
MAINTAINER dongdong<158629568@qq.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

2. 通过Dockerfile文件构建镜像

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

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

[root@localhost ~]# docker images                 # 查看mycentos镜像是否生成

[root@localhost ~]# docker run -it mycentos:0.1   # 运行镜像,生成容器

[root@localhost ~]# docker history 镜像id         # 查看镜像是怎么一步一步做起来的
[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指定了。

FROM centos
MAINTAINER dongdong<158629568@qq.com>

COPY readme.txt /usr/local/readme.txt

ADD jdk-8u161-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.37.tar.gz /usr/local/

RUN yum -y install vim
RUN yum -y install net-tools

ENV MyPath /usr/local
WORKDIR $MyPath

ENV JAVA_HOME /usr/local/jdk1.8.0_161
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.37
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.37
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080

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. 启动镜像,生成容器,并访问测试

[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

[root@localhost ~]# curl localhost:3120                          # 访问测试

[root@localhost ~]# docker exec -it 容器id /bin/bash             # 进入容器
[root@localhost ~]# docker exec -it 074b23e94d /bin/bash

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

发布自己的镜像到DockerHub

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

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

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

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

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

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

一、登陆阿里云

二、找到容器镜像服务

三、创建命名空间

四、创建镜像仓库

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

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

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

posted @ 2020-09-06 20:22  刘_love_田  阅读(191)  评论(0编辑  收藏  举报