前几天因为学习要求接触到了docker这个东西,遇到的问题就是下载别人的镜像供自己使用总是有点不方便,于是乎就像自己搞一个适合自己的镜像,今天摸索了一番,成功创建了一个自己的镜像,遂将过程记录下来以供参考。

博主电脑系统:Ubuntu18.04

备注:整个过程可能会遇到进不去相关的镜像或者容器,可以使用docker stop/start相关命令先关闭再开启镜像或容器。

一、制作自己的镜像

1、选择docker基础镜像

我选择Ubuntu的官方镜像作为基础,官网地址如下:https://hub.docker.com/_/ubuntu/

2、拉取官方镜像

打开终端,运行以下代码从DockerHub拉取镜像

docker pull ubuntu:18.04

这里的冒号后面可以设置想要的Ubuntu版本,我选择18.04,也可以是16.04等,见官网描述。

如何制作自己的ubuntu镜像 ubuntu 制作镜像_手把手实践

3、使用Ubuntu镜像启动一个基于它的容器

docker run -t -i ubuntu /bin/bash

4、进入该容器,更新一下

apt-get undate

5、给容器添加自己的工具

像我自己需要用到Python,就会在容器的终端里面运行以下代码安装工具

apt-get install python3

若要使用pip3,执行如下语句

apt-get install python3-pip

6、退出当前的容器,即在容器终端里执行exit

7、查看一下现在有的镜像和容器

docker image ls

如何制作自己的ubuntu镜像 ubuntu 制作镜像_如何制作自己的ubuntu镜像_02

docker ps -a

如何制作自己的ubuntu镜像 ubuntu 制作镜像_使用commit_03

8、将基于Ubuntu创建的容器bf3c9eef9355打包成自己的镜像

docker commit -m "Added a new image" -a "jiangyijie" bf3c9eef9355 anuory/ubuntu:v2

说明一下,此处docker commit是提交的意思,生成一个新版本;-m为添加注释;-a是作者;后面bf3c9eef9355是容器ID;后面跟的是你要生成的镜像的名字(hub的名称---因为待会上传如果不是hub用户名,就还要改名字/镜像名称:tag)。

然后再次检查自己创建的镜像

docker image ls

如何制作自己的ubuntu镜像 ubuntu 制作镜像_手把手实践_04

9、使用自己创建的容器

docker run -t -i anuory/ubuntu:v2 /bin/bash

如何制作自己的ubuntu镜像 ubuntu 制作镜像_如何制作自己的ubuntu镜像_05

到现在为止,就已经创建好自己的镜像了,接下来就是如何将自己的镜像推送到Docker Hub。

 

二、将自己的镜像推送至Docker Hub

1、注册账号

还没有账号的需要进官网注册。

官网:https://hub.docker.com/

2、在本地终端进行登录账号

docker login

如何制作自己的ubuntu镜像 ubuntu 制作镜像_手把手实践_06

3、如果之前打包容器成自己的镜像,其镜像名与你docker官网用户名不一样,则需要修改镜像名称(我就第一次遇到了这样的问题)

docker tag anuory/ubuntu:v2 yijiejiang/anuory

说明一下:anuory/ubuntu:v2是就的镜像名,yijiejiang/anuory是新的镜像名,并且新镜像名要是你docker官网的用户名,在这里我的docker官网用户名为yijiejiang,所以我就命名为yijiejiang/anuory,斜杠后是自己取的镜像名字。

如何制作自己的ubuntu镜像 ubuntu 制作镜像_如何制作自己的ubuntu镜像_07

用docker images 查看一下本地镜像,发现多了以这个自己新命名的镜像。

4、使用docker push命令进行推送

docker push yijiejiang/anuory

可能推送时间比较长,取决于你镜像的大小,推送完成后,就可以在官网看到自己的镜像了。

如何制作自己的ubuntu镜像 ubuntu 制作镜像_手把手实践_08

以后,别人要使用你自己制作的镜像,就可以直接使用命令docker pull了!