關於Docker一些奇奇怪怪的東西

Docker是什麼

Docker中文翻译为”码头搬运工人”,是一个开源软件。 Docker容器与虚拟机类似,但二者在原理上不同。容器是OS-level virtualization,而虚拟机则是将硬件虚拟化,因此容器更被视为软件的一个标准化单元(个人理解就相当于一个小胶囊,里面裹着一个软件所需要的环境。这个小胶囊可以不依赖外部环境独立运行,从而避免产生一些奇奇怪怪的库问题。)

Docker

國內Docker鏡像加速站

天朝自有国情在
在国内使用官方提供的mirror会经常出现掉线等情况。
这里列举了一些国内的docker镜像站:

Docker国内官方镜像:https://registry.docker-cn.com

网易:http://hub-mirror.c.163.com

阿里云:https://3laho3y3.mirror.aliyuncs.com

DaoCloud:http://f1361db2.m.daocloud.io

腾讯云:https://mirror.ccs.tencentyun.com

修改方式

打开你的terminal

$ sudo nano /etc/default/docker

在最后一行加上

DOCKER_OPTS="--registry-mirror=站点地址"

回到terminal

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

Docker的一些坑

No Command Specified错误

解决链接:https://serverfault.com/questions/757210/no-command-specified-from-re-imported-docker-image-container

在docker中export容器仅仅是将其文件系统给export出来,有很多信息都丢失了。因此如果要将已被冻结的image(原本是个container)给import回去,就必须要加一些东西来重构context。

举个例子,假设我们要导入一个名为dump.tar的image文件。在用于构建dump.tar这个image的Dockerfile中有一句CMD [“/bin/bash”],而这句话对于container正常运行起至关重要的作用,那就必须要用这种方式来导入这个image文件:

$ sudo docker import \
        --change 'CMD ["bin/bash"]' \
        /path/to/dump.tar imagename:tagname