构建自定义docker镜像,上传至docker hub

1,947 阅读2分钟

docker 优势 (外部参考)

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后
发布到任何流行的Linux机器上,便可以实现虚拟化。Docker改变了虚拟化的方
式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 
Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。

安装docker(请参考外部链接)

[Ubuntu Docker 安装](http://www.runoob.com/docker/ubuntu-docker-install.html)
[CentOS Docker 安装](http://www.runoob.com/docker/centos-docker-install.html)
[Windows Docker 安装](http://www.runoob.com/docker/windows-docker-install.html)
[MacOS Docker 安装](http://www.runoob.com/docker/macos-docker-install.html)

本次构建自定义docker镜像流程

我们可以通过以下两种方式对镜像进行更改。
    * 从已经创建的容器中更新镜像,并且提交这个镜像(本次使用)
    * 使用 Dockerfile 指令来创建一个新的镜像(新手不推荐)

1.下载官方centos镜像(本次已centos做实例)

图1

2.运行这个容器 docker run -i -t centos /bin/bash[见图1]

    参数说明
        * -t:在新容器内指定一个伪终端或终端。
        *  -i:允许你对容器内的标准输入 (STDIN) 进行交互。

3.提交一个 docker commit -m="richard server" -a="zhuzhida" b3a4179ec677 richard/centos:v1 [见图1]

各个参数说明:
    -m:提交的描述信息
    -a:指定镜像作者
    b3a4179ec677:容器ID
    richard/centos:v1:指定要创建的目标镜像名

图1

图2

4.进入自己定义的镜像中安装自己所需 相应软件

    安装nginx教程 https://www.cnblogs.com/liujuncm5/p/6713784.html
    安装 MongoDB 。。。等软件
    安装完成后 ctrl+ d 退出伪终端
    将容器转化为镜像 执行命令 `docker commit -m="added nginx+mongdb+git+node" -a="zhuzhida" ca5ca7798a24 richard/centos:v4`
    ca5ca7798a24 为 docker ps -a 中的伪终端 值 

图3
图4

5.提交到docker hub

    在docker hub 上创建 账号密码 并创建仓库 [见图5]
    给镜像打标签 镜像打标签后才可以进行push [见图6]
        `docker tag <existing-image> <hub-user>/<repo-name>[:<tag>]`
        
    登录 `docker login` push 镜像 [见图6]

图5 在docker hub 上创建 账号密码 并创建仓库

图5
图6 给镜像打标签,登录上传
图6

6.登录docker hub 发现已经上传成功

图7

下篇 在服务器上安装 docker hub 中的私有镜像

参考文章

www.jianshu.com/p/dd364b59b… www.jianshu.com/p/fb237c7eb… blog.csdn.net/Prepared/ar…