部署docker容器虚拟化平台
1、安装docker服务
1.1、安装docker环境依赖
# yum install -y yum-utils device-mapper-persistent-data lvm2
1.2、配置国内docker的yum源(阿里云)
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.3、安装docker-ce
# yum install docker-ce docker-ce-cli containerd.io -y
注:docker-ce-cli 作用是docker命令行工具包
containerd.io 作用是容器接口相关包
yum info 软件包的名字,可以查看一个包的具体作用。
1.4、启动docker并添加开机自启动
# systemctl start docker && systemctl enable docker
1.5、显示 Docker 版本信息
# docker version
1.6、查看 docker 信息(确认服务运行)显示 Docker 系统信息,包括镜像和容器数。
# docker info
2、下载docker镜像
2.1、搜索 images
# docker search centos #从 Docker Hub 中搜索符合条件的镜像。
2.2、获取镜像方法
方法1:从公网docker hub 拉取(下载)image
# docker pull centos
方法2:配置加速镜像地址
①使用阿里云docker镜像加速器,提升pull的速度:
你只需要登录容器Hub服务 https://cr.console.aliyun.com的控制台,登录阿里云帐号即可有镜像加速地址:
我自己的阿里云加速镜像:https://b9sbiwe3.mirror.aliyuncs.com
需要手动创建daemon.json文件。写入以下内容
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com","https://b9sbiwe3.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
②修改docker服务启动脚本,配置加速镜像地址
# vim /usr/lib/systemd/system/docker.service
改:
14 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
为:
14 ExecStart=/usr/bin/dockerd -H fd:// --registry-mirror=https://b9sbiwe3.mirror.aliyuncs.com --containerd=/run/containerd/containerd.sock
重启docker服务使daemon.json生效
systemctl daemon-reload #只有修改了systemd服务脚本,才需要重新加载,修改配服务的置文件,不需要执行这个。
systemctl restart docker
方法3:把之前下载好的image镜像导入image:
把docker-centos7.tar 镜像上传到linux上
#docker load -i /root/docker-centos7.tar
参数: -i docker-centos7.tar 指定载入的镜像归档。
方法4:直接下载其他站点的镜像
#docker pull hub.c.163.com/library/tomcat:latest
查看 images 列表
[root@xuegod63 ~]# docker images
2.3、开启动网络转发功能
插入网络转发功能:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p #生效
查看是否生效:
# cat /proc/sys/net/ipv4/ip_forward
1
# systemctl stop firewalld && systemctl disable firewalld #关了防火墙
# systemctl restart docker #关了防火墙,要把docker服务重启一下,不然后docker 的ip包转发功能无法使用。即使防火墙关了,docker会调用内核模块netfilter增加规则,所以有防火墙规则。