制作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) 编辑 收藏 举报