Docker 容器虚拟化

查淮晨
2023-12-01

1. Centos部署Docker容器虚拟化平台

安装Docker环境依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

配置国内Docker的yum源(阿里云)##

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Docker

yum install docker-ce docker-ce-cli containerd.io -y

docker-ce-cli 的作用是Docker命令行工具。containerd.io 是容器接口相关包。

启动Docker服务并且开机启动

systemctl start docker && systemctl enable docker

2. 拉取镜像 - 配置镜像加速地址

首先,你可以先使用**docker search imageName命令查找到需要的镜像。然后使用docker pull imageName**拉取镜像,若不加版本号则拉取latest。

但该方法拉取镜像速度较慢,下面推荐几种方法拉取镜像。

(1) 更换镜像下载地址

这里推荐使用阿里云Docker镜像加速器,提高pull速度,也可以选择其他加速器,比如网易,原理相同。

这里也提供下网易镜像地址: https://c.163.com/hub#/m/home/

登录阿里云镜像加速器控制台,https://cr.console.aliyun.com。控制台页面左侧菜单栏的镜像工具-镜像加速器会显示分配的加速地址,格式大概为https://xxxxxxxx.mirror.aliyuncs.com

使用vim编辑daemon.json文件(默认不存在该文件,vim会自动创建)。

vim /etc/docker/daemon.json

daemon.json文件内容添加如下,可以配置多个镜像加速地址["地址1", "地址2" , "地址3"]:

{
  "registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}

然后依次执行下面两个命令:

systemctl daemon-reload
systemctl restart docker

最后使用docker info命令查看Registry Mirrors的地址是否为加速地址。然后再进行拉取镜像操作,就会非常快速了。

(2) 离线方式拉取镜像

该方式使用到了Docker镜像导入导出相关操作。

首先,你需要提前通过其他渠道下载好image镜像文件(后缀名为.tar),通过ftp等方式将上传至Linux服务器,然后使用下面命令导入镜像即可。

docker load -i xxx.tar

同样的,你也可以使用下面命令导出images仓库中的某个镜像。其中,xxx.tar是导出tar文件名,imageName:latest选择指定TAG的镜像.

docker load -o xxx.tar imageName:latest

3. 开启Docker路由转发功能

默认是开启,不需要进行此配置。

但如果你在启动Docker实例时,控制台报下面错误的话,就需要进行该配置。

WARNING: IPv4 forwarding is disabled. Networking will not work.

先使用vim /etc/sysctl.conf命令,添加内容net.ipv4.ip_forward = 1

# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward = 1

再使用sysctl -p使配置生效,也可以使用cat /proc/sys/net/ipv4/ip_forward查看是否开启路由转发功能,下面是控制台历史记录。

[root@atlantis ~]# vim /etc/sysctl.conf
[root@atlantis ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@atlantis ~]# cat /proc/sys/net/ipv4/ip_forward
1
[root@atlantis ~]# 

然后关闭防火墙,再重新启动Docker服务,然后使用iptables -L -n会发现多了很多Docker相关的防火墙规则。

[root@atlantis ~]# systemctl stop firewalld && systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@atlantis ~]# systemctl restart docker
[root@atlantis ~]# iptables -L -n
······

4. Docker的基本使用

命令太多,具体使用方法请自行百度。

Docker命令tab自动补全

若Docker部分命令使用tab无法自动补全,依次执行下面3个命令即可解决。

yum install -y bash-completion
source /usr/share/bash-completion/completions/docker
source /usr/share/bash-completion/bash_completion
 类似资料: