O、前言
由于大数据的兴起,使用docker开发部署应用,成为常见的使用场景。安装docker也就非常常见的操作了。网上有很多的文章介绍安装和使用docker的,大多都不完整,自己动手做的时候,会出各种问题(哪怕一个很小的技术点遇到障碍,耗你个个把钟头很正常)。我这篇是比较完整的、亲测可用的,希望能给用docker的同学以帮助。注意我的场景:虚拟机docker是用vagrant创建的。由于大家知道的原因,很多的docker仓库停服了,再加上网络有时不稳定,可能拉取测试时,不能用。大家在不同时间段,多测试几次。或者在阿里云上构建自己的docker仓库【我准备下一篇文章写这个内容】。废话不说,下手开工。
一、环境准备
参照 :我的文章: vagrant创建多台VirtualBox centOS7虚拟主机
生成centos虚拟机centos-node3,我的测试环境E:\mycentos\vagrant_ha(虚拟机所在的目录)
VagrantFile 配置如下
Vagrant.configure("2") do |config|
config.vm.box = "my-centos7"
config.vm.define "centos-node3" do |vb|
config.vm.provider "virtualbox" do |v|
#v.name = "centos-node3"
v.memory = 512
v.cpus = 1
end
vb.vm.host_name = "centos-node3"
vb.vm.network :public_network, ip: "192.168.1.13"
vb.vm.box = "my-centos7"
end
end
二、设置允许口令登录,以便 securecrt 等终端工具登录
E:\mycentos\vagrant_ha>vagrant ssh centos-node3
[vagrant@centos-node3 ~]$ su -l
[root@centos-node3 ~]# vi /etc/ssh/sshd_config
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication yes
[root@centos-node3 ~]# systemctl daemon-reload
[root@centos-node3 ~]# systemctl restart sshd
三、设置yum源
如果不设置yum源,后面的操作会报如下的错误:
Cannot find a valid baseurl for repo: base/7/x86_64
[root@centos-node3 yum.repos.d]#
cd /etc/yum.repos.d
curl -O http://mirrors.aliyun.com/repo/Centos-6.repo #下载阿里yum源配置文件
mv CentOS-Base.repo centos-base.bak.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
我觉得这步可以省掉了。
四、设置镜像加速
cd /etc/docker
vi daemon.json
编辑下面的配置
{
"registry-mirrors": ["https://lta8n101.mirror.aliyuncs.com"]
}
五、安装docker
[root@centos-node3 yum.repos.d]# yum install -y docker-ce
安装正常,报如下错误。
上述问题可以提前导入密钥来解决
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-*
再次执行安装命令,成功完成。
六、启动docker
systemctl start docker
systemctl enable docker
七、测试docker
测试一下,docker pull nginx
报如下错误:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/34de9a797c9745a7ba9008a0de2fbbf6.png#pic_center)
八、设置dns,解决上述问题
[root@centos-node3 yum.repos.d]# vi /etc/resolv.conf
nameserver 8.8.8.8 #修改nameserver的值
保存,退出。
[root@centos-node3 ~]# cd /etc/NetworkManager
[root@centos-node3 NetworkManager]# vi NetworkManager.conf
在[main]下添加dns=none
保存后,退出
重新启动docker
systemctl daemon-reload
systemctl start docker
重新拉取nginx测试,ok完成
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7790f82ca278412ba380373e33f89910.png#pic_center)