docker创建镜像的三种方法
2.基于本地模板镜像创建: 通过导入操作系模板文件可以生成镜像,模板可以从OPENVZ开源项目下载,下载地址为:https://wiki.openvz.org/Download/template/precreated
Cat 镜像包 | docker import - 生成的镜像名:标签 3.用dockerfile生成镜像: Dockerfile结构的四个部分:基本镜像信息,维护者信息,镜像操作指令和容器启动执行指令: 3.1:建立工作目录: [root@123456 ~]# mkdir myapache [root@123456 ~]# cd myapache/
3.2创建并编写dockerfile文件: 3.3编写执行脚本文件: [root@123456 myapache]# vim run.sh
#!/bin/bash rm -rf /run/httpd/* exec /usr/sbin/apachectl -D FOREGROUND 3.4创建测试页面: [root@123456 myapache]# echo “then is httpd”>index.html [root@123456 myapache]# ls Dockerfile index.html run.sh
3.5使用dockerfile生存镜像文件: 命令docker build 选项 路径 常用选项: -t:指定镜像的标签选项。 [root@123456 myapache]# docker build -t centos:httpd . 3.6使用新的镜像运行容器: 将容器中的暴露端口映射到宿主机上端口号为8888 [root@123456 myapache]# docker run -it -d -p 8888:80 centos:httpd c3b0432591612bf0697404e4044eeb45d42e072ea27388e8b498697a2ebb7436
3.7用真实主机去访问宿主机加映射的端口号: 4.将镜像上层到仓库: 为dockerfile创建的镜像添加别名(如果要上传到公共仓库需要在前面标签你的docker hub账号) [root@123456 myapache]# docker tag centos:httpd zj199711/centos:httpd 上传成功:
5.创建私有仓库: 可以使用registry来搭建本地私有仓库:
5.1需要在构建私有仓库的服务器上下载registry镜像 [root@123456 ~]# docker pull registry Using default tag: latest 之后需要在/etc/docker/目录下创建一个json文件。否则在往自定义的私有仓库中上传镜像是会包错: [root@123456 ~]# vim /etc/docker/daemon.json
{ “registry-mirrors”: [“https://5fpngg16.mirror.aliyuncs.com”] } { “insecure-registres”: [“172.16.16.200:5000”]
} 5.2 使用registry镜像创建一个容器,默认情况下仓库放于容器内的/tmp/registry目录下,使用-v选项可以将本地目录挂载到容器内的/tmp/registry下使用这样就不怕容器被删除后镜像也会随之丢失:(默认的监听端口为registry 5000端口号) 将创建的容器5000的端口号映射到本机: [root@123456 ~]# docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry 5c70a2c6ae9722696bf9004e5dcc637f2bef9ba621be15948b08d461fa515bfb 使用docker tag 命令将要上传的镜像标记为宿主机的IP/+镜像名 [root@123456 ~]# docker tag centos:httpd 172.16.16.200:5000/centos:httpd 用docker push上传标记的镜像: