制作docker镜像方式分为两种
一种是基于容器制作docker镜像
docker save -o nginx-zf.tar nginx ##下载镜像
docker load -i nginx-zf.tar ##导入镜像,通常会在另外一台机器上导入
docker export 6e77c5f696ea > zf-web.tar ###基于容器制作镜像
cat zf-web.tar |docker import - alpine ###将容器导入并命名为 alpine
一种是基于dockerfile
工作逻辑
1.找一个专用目录,这个目录中放置dockerfile
2.docekfile文件首字母大写,
# Description: test image
FROM nginx:latest #指定基础镜像
MAINTAINER "zhangsan <zhang@san.com>" #指定用户信息
#LABEL maintainer="zhangsan <zhang@san.com>" 或者用下面这个指定
COPY index.html /usr/share/nginx/html/ #用于从docker主机复制文件至新建的映像文件
ADD #ADD指令类似与COPY指令,ADD支持使用TAR文件和URL路径
docker build -t zf-web:v0.1 ./ #创建镜像
验证网页文件有没有拷贝进去
docker run --name tiweb1 --rm zf-web:v0.1 cat /usr/share/nginx/html/index.html
能够看到我刚才编辑的网页文件说明拷贝成功!
ADD命令
# Description: test image
FROM nginx:latest
MAINTAINER "zhangsan <zhang@san.com>"
COPY index.html /usr/share/nginx/html/
ADD http://nginx.org/download/nginx-1.18.0.zip /usr/local/src/ #去指定的url地址下载指定的文件,放到指定的位置
#ADD nginx-1.18.0.zip /usr/local/src/ #将指定的压缩包拷贝的指定的路径,并解压
WORKDIR /usr/local/src/ #指定当前目录,可以有多个WORKDIR
#ADD nginx-1.18.0.zip ./
VOLUME /data/mysql #用于在image中创建一个挂载点目录,以挂载docker host上的存储卷
EXPOSE #用于为容器打开指定要监听的端口,实现与外部通信