前几天因为学习要求接触到了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等,见官网描述。
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
docker ps -a
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
9、使用自己创建的容器
docker run -t -i anuory/ubuntu:v2 /bin/bash
到现在为止,就已经创建好自己的镜像了,接下来就是如何将自己的镜像推送到Docker Hub。
二、将自己的镜像推送至Docker Hub
1、注册账号
还没有账号的需要进官网注册。
2、在本地终端进行登录账号
docker login
3、如果之前打包容器成自己的镜像,其镜像名与你docker官网用户名不一样,则需要修改镜像名称(我就第一次遇到了这样的问题)
docker tag anuory/ubuntu:v2 yijiejiang/anuory
说明一下:anuory/ubuntu:v2是就的镜像名,yijiejiang/anuory是新的镜像名,并且新镜像名要是你docker官网的用户名,在这里我的docker官网用户名为yijiejiang,所以我就命名为yijiejiang/anuory,斜杠后是自己取的镜像名字。
用docker images 查看一下本地镜像,发现多了以这个自己新命名的镜像。
4、使用docker push命令进行推送
docker push yijiejiang/anuory
可能推送时间比较长,取决于你镜像的大小,推送完成后,就可以在官网看到自己的镜像了。