博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker创建镜像的三种方法
阅读量:17326 次
发布时间:2019-09-17

本文共 2065 字,大约阅读时间需要 6 分钟。

在工作中我们交付给你客户的往往都是一些定定制的容器,但是在这之前我们要先学会怎么去创建镜像来交付

一、docer创建镜像的创建方法
创建docker镜像的三种方法,分别是基于已有的容器创建、基于本地模板创建、以及dockerfile创建。
1.基于以有容器创建镜像。
基于已有的容器创建主要是使用docker commit命令。实质就是把一个容器里面运行的程序以及该程序的运行环境打包起来生成新的镜像。
命令:docker commit 选项 容器ID/名称 仓库名称:标签
常用的选项:
-m:说明信息
-a:作者
-p:生成过程中停止容器的运行(一般不会使用)
在这里插入图片描述

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上传标记的镜像:
在这里插入图片描述

转载地址:http://ignihz.baihongyu.com/

你可能感兴趣的文章
“秀才造反,十年不成”是什么意思? - 已解决 - 搜搜问问
查看>>
服装配饰_MAVIN MARVY 高级服装定制_西服定制_衬衫定制_西装定制
查看>>
第九课堂-经验与技能分享交易网站
查看>>
北京西服定做_衬衫定制_关于我们_Dimoon TLR.
查看>>
何谓Dandy?它是一种着装风格
查看>>
景甜_百度百科
查看>>
Squid配置文件详解
查看>>
(12) Hadoop 升级技能
查看>>
(总结)Nginx配置文件nginx.conf中文详解
查看>>
wget 下载
查看>>
HTTPS的七个误解
查看>>
ssl证书配置
查看>>
为什么使用<!DOCTYPE HTML>
查看>>
leetcode 451 Sort Characters By Frequency C++
查看>>
leetcode 477 Total Hamming Distance C++
查看>>
笑话收集
查看>>
超级程序员神话
查看>>
advanced installer制作windows软件安装界面
查看>>
操作系统读书笔记
查看>>
2017年计划
查看>>