#安装
sudo yum install -y yum-utils device-mapper-persistent-data lvm2123
#提示错误:
Another app is currently holding the yum lock; waiting for it to exit...
#解决
ps -aux|grep yum查看相关进程并且kill,如果没有用的话,直接rm -f /var/run/yum.pid
#设置阿里云镜像
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#提示失败
Loaded plugins: fastestmirror, langpacks
adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
Could not fetch/save url https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 14] curl#60 - "Peer's Certificate issuer is not recognized."
这是由于国内访问不到docker官方镜像的缘故,没事,到目前为止我还是耐心十足,我们继续探索,改为了http网址,再次设置:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce
#开机自启
sudo systemctl enable docker
#启动docker服务
sudo systemctl start docker
提示错误:
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
这是由于daemon.json配置文件错误导致,在daemon.json添加如下内容:
vim /etc/docker/daemon.json
{
"graph": "/mnt/docker-data",
"storage-driver": "overlay",
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
再次重启docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
docker pull mysql:5.7
Error response from daemon: Get https://registry-1.docker.io/v2/library/mysql/manifests/5.6: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Fmysql%3Apull&service=registry.docker.io: x509: certificate signed by unknown authority
拉取mysql镜像还是失败,我已经处于崩溃边缘,不过皇天不负有心人,经过一番搜索引擎的熟练骚操作,感谢党!终于找到以下解决办法:
第一步:通过dig @114.114.114.114 registry-1.docker.io找到可用IP
dig @114.114.114.114 registry-1.docker.io
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.2 <<>> @114.114.114.114 registry-1.docker.io
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63593
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;registry-1.docker.io. IN A
;; ANSWER SECTION:
registry-1.docker.io. 454 IN A 34.195.36.112
;; Query time: 14 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Mon May 04 21:51:37 PDT 2020
;; MSG SIZE rcvd: 65
第二步:尝试修改/etc/hosts强制docker.io相关的域名解析到其它可用IP
vim /etc/hosts
添加一个可用IP:
34.195.36.112 registry-1.docker.io
第三步:
再次拉取mysql镜像:docker pull mysql:5.7
成功了!!!接下来进入我们的showtime环节:
#运行mysql镜像
docker run --name dockerMysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
#运行docker ps -a 查看是否运行成功
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9451f0d504d9 mysql "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 33060/tcp, 0.0.0.0:3307->3306/tcp dockerMysql
#进入mysql容器
docker exec -it dockerMysql bash
#登录mysql
mysql -u root -proot
好了,以上就是在CentOS下安装docker的全部采坑,在VSCode中通过golang成功登陆mysql之后,总算舒缓了一点心中的郁闷之气。