安装完docker后,执行docker pull learn/tutorial 发现镜像拉

[root@bogon ~]# docker pull learn/tutorial

Using default tag: latest

Trying to pull repository docker.io/learn/tutorial ...

latest: Pulling from docker.io/learn/tutorial

271134aeb542: Pulling fs layer

参考这个地址

​https://ieevee.com/tech/2016/09/28/docker-mirror.html​

​https://github.com/silenceshell/docker_mirror​

docker_mirror

查找国内最快的docker镜像源,支持CentOS/Ubuntu。

Python编写,需要root权限,支持ubuntu和centos7,其他操作系统需要补充。

使用方法非常简单,下载 ​​docker_mirror.py​​ 文件到本地,执行下面的命令即可,脚本会自动从official, aliyun, netease, ustc尝试下载centos最新的docker镜像,并计算使用的时间;按使用时间最少的镜像设置docker配置,并重启docker进程。

python ./docker_mirror.py

脚本执行后,就可以直接使用最快的docker镜像了。

按照上面的宝典,然后再重新拉取镜像

docker pull learn/tutorial
Using default tag: latest
Trying to pull repository docker.io/learn/tutorial ...
latest: Pulling from docker.io/learn/tutorial
271134aeb542: Pull complete
Digest: sha256:2933b82e7c2a72ad8ea89d58af5d1472e35dacd5b7233577483f58ff8f9338bd
[root@bogon ~]#

 

发现成功的拉取了镜像

执行docker images

[root@bogon ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/learn/tutorial latest a7876479f1aa 4 years ago 128 MB
[root@bogon ~]#

如果看到以上输出,说明您可以使用“docker.cn/docker/centos”这个镜像了,或将其称为仓库(Repository),该镜像有一个名为“latest”的标签(Tag),此外还有一个名为“a7876479f1aa”的镜像 ID(可能您所看到的镜像 ID 与此处的不一致,那是正常现象,因为这个数字是随机生成的)。此外,我们可以看到该镜像只有 128 MB,非常小巧,而不像虚拟机的镜像文件那样庞大。

现在镜像已经有了,我们下面就需要使用该镜像,来启动容器

启动容器

容器是在镜像的基础上来运行的,一旦容器启动了,我们就可以登录到容器中,安装自己所需的软件或应用程序。既然镜像已经下载到本地,那么如何才能启动容器呢?

只需使用以下命令即可启动容器:

docker run -i -t -v /root/software/:/mnt/software/ a7876479f1aa /bin/bash

 这条命令比较长,我们稍微分解一下,其实包含以下三个部分:

docker run <相关参数> <镜像 ID> <初始命令>

其中,相关参数包括:

  • ​-i​​:表示以“交互模式”运行容器
  • ​-t​​:表示容器启动后会进入其命令行
  • ​-v​​:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

假设我们的所有安装程序都放在了宿主机的​​/root/software/​​​目录下,现在需要将其挂载到容器的​​/mnt/software/​​目录下。

需要说明的是,不一定要使用“镜像 ID”,也可以使用“仓库名:标签名”,例如:docker.io/learn/tutorial latest

初始命令表示一旦容器启动,需要运行的命令,此时使用“/bin/bash”,表示什么也不做,只需进入命令行即可。

随后,可使用如下命令查看正在运行的容器:

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da91e745434b a7876479f1aa "/bin/bash" 5 minutes ago Up 4 minutes hungry_fermi

发现刚才运行的容器在这里出现了
接下来执行docker version
[root@bogon ~]# docker version
Client:
Version: 1.12.6
API version: 1.24
Package version: docker-1.12.6-71.git3e8e77d.el7.centos.1.x86_64
Go version: go1.8.3
Git commit: 3e8e77d/1.12.6
Built: Tue Jan 30 09:17:00 2018
OS/Arch: linux/amd64

Server:
Version: 1.12.6
API version: 1.24
Package version: docker-1.12.6-71.git3e8e77d.el7.centos.1.x86_64
Go version: go1.8.3
Git commit: 3e8e77d/1.12.6
Built: Tue Jan 30 09:17:00 2018
OS/Arch: linux/amd64
发现 Server端也有了