Docker
Docker使用指令
容器命令
镜像命令
其他命令
清理Docker占用的存储空间
操作系统下的docker安装
Ubuntu安装Docker
CentOS安装Docker
修改docker镜像的时区
docker 镜像制作和镜像打包
查看Container的网络工作模式
修改Container的网络工作模式
本文档使用 MrDoc 发布
-
+
home page
docker 镜像制作和镜像打包
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 # 一、Docker环境的搭建 Docker基于Linux系统为基础的,所以这里以CentOS7.9.2009为例 拉取docker镜像 ``` docker pull centos:v7.9.2009 ``` 启动并后台运行基础镜像 ``` docker run -it --name='myCentOS' centos:v7.9.2009 ``` 在基础镜像上定制自己的程序 ``` # 自定义容器内的任何操作,这里仅安装nginx作为演示 yum -y install nginx ``` 对自定义镜像进行打包 ``` docker commit myCentOS myNginx:v1 ``` # 二、创建自己的定制镜像 这里以定制nginx应用为例,以下是具体操作 1、首先创建一个基目录(也就是创建一个文件夹,把创建镜像用到的所有文件都放在这里) 在该目录下,创建Dockerfile,该文件是用于对镜像进行定制化的配置,执行时该目录下的所有文件都将打包到镜像内,所以在当前目录下,仅保留Dockerfile即可 ``` mkdir -p /tmp/nginx cd /tmp/nginx touch Dockfile ``` 2、编写Dockerfile文件 ```bash # FROM需要指定基础镜像,并且必须为Dockerfile文件的第一行 FROM myCentOS:v1 # 该镜像的所属人信息 MAINTAINER "tester" # 环境变量,格式:key value ENV CREATETIME 2017-06-12 # run命令,每个run命令都会在原基础上多加一层,导致镜像膨胀,建议按如下合并为一条执行 RUN yum -y install vim net-tools wget openssh-* && echo '<h1> Hello Nginx <h1>' >> /usr/share/nginx/html && nginx # 容器对外映射的端口 EXPOSE 80 8000 # 启动自定义脚本 CMD ["/bin/bash","/app/runer.sh"] ``` 编辑 /app/runer.sh,编辑自定义脚本内容 ``` #/bin/bash echo hello tail -f /dev/null ``` > 上述配置中`tail -f /dev/null`命令是由于docker启动后会以该脚本为pid=1启动,当该脚本执行完毕后,docker认为容器已退出运行,所以会自动停止容器 该操作避免上述问题 3、使用docker build构建 在Dockerfile目录下操作 ``` docker build -t='myNginx:v1.1' . ``` 注: - -t="CNAME" 为新构建的镜像起个别名 - `.` 千万别忘了这个点,指的是当前目录(此项为Dockerfile的路径) 4、创建完成后查看 ``` docker images ``` # 三、把镜像保存到本地 ``` docker save -o centos_nginx.tar myNginx:v1.1 ``` 注: - centos_nginx.tar为保存到本地后的包名 - myNginx:v1.1为被打包的对象镜像 # 四、导入镜像 ``` docker load -i centos_nginx.tar ``` 使用上述参数导入即可
Nathan
April 27, 2023, 11:15 p.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
PDF文件
Docx文件
share
link
type
password
Update password