制作Dockerfile文件(自动化、企业级)ps:重点

1)###创建制作镜像的存放文件夹,分为应用型和系统型

mkdir /data/Dockerfile/{web/{nginx,apache,jdk,tomcat},system/{centos,ubuntu,alpine,debian}} -p

2)###这边打算先制作一个centos7和8的镜像因此在centos目录下分别创建文件夹

mkdir /data/Dockerfile/system/centos/centos7;mkdir /data/Dockerfile/system/centos/centos8 -p

 

3)###这里选择了centos7.9版本制作镜像文件因此centos7目录下再创建一个文件夹

tree /data/Dockerfile/system/centos/centos7/centos7.9-v0.1

vim Dockerfile   ###进入到centos7.9-v0.1目录创建文件,Dockerfile为固定格式

 

 

5)###使用FORM命令指定一个基础系统镜像,这个镜像可从dockerhub拉取也可事先下载到docker images中(这里我选择从官网下载)

 

 

 


6)###使用LABEL命令顾明思议,这里使用的是“一 LABEL多行的写法(可大大节省Dockerfile的资源空间)”,将一些注释内容添加上去  \ 表示换行。

LABEL maintainer="caoqinglin <1251618589@qq.com>" \
      version="0.1"\
      description"Base CentOS7.9"

 

7)### RUN命令,可执行shell中的命令(也是一RUN多行的写法)

RUN  yum -y install vim gcc tree wget curl net-tools && \
     yum clean all && \
     rm -f /etc/localtime && \
     ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
     useradd -r -u 80 -s /sbin/nologin www

 

###  &&表与短路,当前面的命令结果为真则运行换行后的命令。


8)###使用 docker build 命令基于Dockerfile文件生成镜像

 ### -t表示Tag 后面跟自定义Tag(镜像名:版本号)

docker build -t centos7.9.2009:v0.1 .

 

以上为基础系统------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------下面构建应用类镜像

1)###这里我选择构建nginx镜像,一样先进去之前创建的nginx目录中,然后到docker Hub 查看nginx版本。再决定创建什么版本名的nginx目录。

mkdir nginx1.14;cd nginx1.14   ###这里我选择1.14版的nginx进行目录创建,然后进入到目录中

 

2)###创建Dockerfile 进入编辑,因为应用镜像是基础系统镜像之上进行创建,因此FROM需要指定先前所创建的基础系统镜像作为底层。

vim Dockerfile

 

 

 

 

3)###使用LABEL命令打标签

LABEL maintainer="caoqinglin <1251618589@qq.com>" \
      version="0.1"\
      description="Base CentOS7.9"



4)###做个小测试,推出生成nginx镜像可以发现并没有安装成功,这是因为安装nginx需要epel源,因此需要为FROM指定的基础系统镜像增加epel源。

 

 

 5)###在基础系统镜像中增加epel源,重新生成一个镜像命名为  centos7.9.2009:v0.2    ,nginx的FROM重新指定为centos7.9.2009:v0.2



 ###这里用重定向修改网页内容,因为index.html这个文件是个软连接且不存在,因此需要rm(删除)。(安装失败后进入官方的nginx镜像所生成的容器中使用ll命令查看过)

 


 6)###保存文件出,生成镜像,自定义服务型镜像名称与版本

docker build -t nginx1.14-centos7.9:v0.1 .



 

 

 

 

 7)###基于生成的nginx1.14-centos7.9镜像,创建名为 nginx1.14 的容器。

docker run -d -p 8080:80 --name nginx1.14 nginx1.14-centos7.9:v0.1 nginx -g "daemon off;"    ### 后面根上nginx的关闭进程参数,才能启动该容器。

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2021-05-22 20:55  1251618589  阅读(1)  评论(0编辑  收藏  举报

导航