开头: 容我叉叉腰,因为竞赛迫使自己DIY了自己第一个镜像,也明白了别人的终究是别人的,话不多说,开干!!!

第一步:在docker hub上寻找到基础镜像ubuntu 18.04

创建ubuntu18 docker镜像 如何制作ubuntu镜像_创建ubuntu18 docker镜像

第二步:在docker上拉取并运行基础镜像ubuntu 18.04

PS:拉取的过程中会遇到拉取过慢的情况,可以通过配置阿里云解决具体方法可以参考:https://www.jianshu.com/p/4002f93c87c4 比较实用

docker pull ubuntu:18.04

拉取之后运行该基础镜像,进入镜像后就可以自行设计镜像了

docker run -it ubuntu:18.04

创建ubuntu18 docker镜像 如何制作ubuntu镜像_linux_02

第三步:在基础镜像中DIY,确保满足需求

下面解决一些在DIY过程中常常遇到的问题:

1.解决镜像源的问题

国外镜像源一般速度较慢,所以我们需要将镜像里的镜像源以命令行的方式改为国内的镜像源操作如下: 首先要将/etc/apt/sources.list中的内容换为国内源的内容此处使用的清华镜像源

*关键的问题出现了:*由于更换国内源的时候会出现证书安全类的问题(也可能是镜像系统时间的问题),所以一般需要将镜像源文件里的https改为http-----我个人认为是因为http协议的安全性要求相对较低,所以可以避免证书安全的问题(我个人不很清楚,有专业的可以喷我一下)

echo "#tsinghua" > /etc/apt/sources.list  #覆盖原生镜像源内容
echo "# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse "  >> /etc/apt/sources.list  #添加清华镜像源
cat /etc/apt/sources.list #查看/etc/apt/sources.list的内容

创建ubuntu18 docker镜像 如何制作ubuntu镜像_linux_03

解决国内源的问题后面就好办了,更新源之后就可以肆无忌惮的apt-get install XXX 了!

apt-get update
apt-get install XXX

第四步:保存在基础镜像中所有的更改,并生成新的镜像

首先退出基础镜像,并记录镜像id,如下图629edffeded5就是镜像id

创建ubuntu18 docker镜像 如何制作ubuntu镜像_docker_04

保存基础镜像的更改mypytorch 是个人对新镜像的命名

docker commit 629edffeded5 mypytorch  #mypytorch 是个人对新镜像的命名

此时DIY镜像就已经制作成功,新镜像保留了所有DIY 的结果,现在就可以使用了:

docker run -it mypytorch