为什么要使用镜像加速器拉取镜像?
构建容器的镜像全部在下面这个网站里面,但是这个站点在国外,对于我们来说使用很不方便,下载非常慢。
镜像默认可以从 docker hub 上下载,这是 docker 官方的公共仓库
为我们免费提供了大量已经容器化的应用镜像,但是官方并没有在国内部署服务器,如果你不走 的话真的是太慢了,报错和超时让人非常的郁闷
我们可以使用镜像加速直接下载镜像
镜像加速器有哪些?
国内很多云服务商都提供了国内加速器服务,例如:
Azure 中国镜像 https://dockerhub.azk8s.cn
阿里云加速器(需登录账号获取)
七牛云加速器 https://reg-mirror.qiniu.com
在这里我们选择阿里云的镜像加速器。
如何设置?
我们可以直接在浏览器中搜索阿里云,进入阿里云的官网中,点击侧面的弹性服务中的容器镜像服务,
但是在这之前我们需要先进行登陆,登陆方法可以选择,可以直接注册新帐号,同时也可以使用支付宝扫码登陆,登陆完成绑定自己手机就行。
登陆完成之后在当前页面点击控制台,
在侧面的镜像中心中看到有一个镜像加速器的服务,点击进去。
每个人注册完成之后有不同的加速器地址,选择自己的操作系统,按照提示一步一步进行。
配置
根据官方文档,
[root@server1 ~]# cd /etc/docker/
[root@server1 docker]# ls
key.json
[root@server1 docker]# vim daemon.json
{
"registry-mirrors": ["https://yot2uoql.mirror.aliyuncs.com"]
}
将镜像加速器的地址写入文件中。
systemctl daemon-reload ##刷新后台
systemctl restart docker ##重启docker
这样镜像加速器就已经设置完成,但是有很多小伙伴就发现,即使加速器设置完成 ,还是有报错出现,这个原因可能是
这是两个最主要的原因,我们一步一步来解决。
首先解决机器不能上网的问题:
前面两条都没有问题后,在真机上作源地址转换。
firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: dhcpv6-client ftp http ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
确保masquerade是yes,如果是no将服务添加进去并且重启火墙服务就可以了。
firewall-cmd --add-masquerade
如果虚拟机可以上网,那么就是网关和解析的问题,
在虚拟机上设置网关(真机ip),并且做解析
vim /etc/resolv.conf
nameserver 114.114.114.114
这样准备工作就全部完成了。
下来就准备拉取镜像到本机即可。
镜像拉取使用
docker pull 拉取的镜像名
但是如何确定仓库是否有你要的镜像,那就使用
docker search 拉取的镜像名
比如
docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12619 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1737 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 755 [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxS… 91
bitnami/nginx Bitnami nginx Docker Image 75 [OK]
tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rtmp… 62 [OK]
jc21/nginx-proxy-manager Docker container for managing Nginx proxy ho… 39
nginxdemos/hello NGINX webserver that serves a simple page co… 37 [OK]
nginx/unit NGINX Unit is a dynamic web and application … 33
jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 33 [OK]
nginx/nginx-ingress NGINX Ingress Controller for Kubernetes 23
privatebin/nginx-fpm-alpine PrivateBin running on an Nginx, php-fpm & Al… 20 [OK]
schmunk42/nginx-redirect A very simple container to redirect HTTP tra… 18 [OK]
blacklabelops/nginx Dockerized Nginx Reverse Proxy Server. 13 [OK]
centos/nginx-18-centos7 Platform for running nginx 1.8 or building n… 12
nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles 12
centos/nginx-112-centos7 Platform for running nginx 1.12 or building … 12
raulr/nginx-wordpress Nginx front-end for the official wordpress:f… 12 [OK]
nginx/nginx-prometheus-exporter NGINX Prometheus Exporter 9
sophos/nginx-vts-exporter Simple server that scrapes Nginx vts stats a… 6 [OK]
mailu/nginx Mailu nginx frontend 5 [OK]
pebbletech/nginx-proxy nginx-proxy sets up a container running ngin… 2 [OK]
ansibleplaybookbundle/nginx-apb An APB to deploy NGINX 1 [OK]
centos/nginx-110-centos7 Platform for running nginx 1.10 or building … 0
wodby/nginx Generic nginx 0 [OK]
但是当名字只有nginx时才是官方镜像,其他的都是用户上传的镜像。
找到之后将镜像就可以进行拉取了。
docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
bc51dd8edc1b: Pull complete
66ba67045f57: Pull complete
bf317aa10aa5: Pull complete
Digest: sha256:ad5552c786f128e389a0263104ae39f3d3c7895579d45ae716f528185b36bc6f
Status: Downloaded newer image for nginx:latest
这样完整的镜像加速器的设置和拉取镜像就结束了。