Docker
镜像 ——容器——仓库
创建容器需要拉取镜像,镜像多了需要存到仓库,镜像一般都是下载来的,也可使用别的机器发过来的镜像
- 镜像:创建容器的基础,类似虚拟机快照,比如一个镜像可以是一个完整的centos操作系统环境,称为centos镜像,也可以是一个安装了Mysql的应用程序,称为Mysql镜像
- 容器:是从镜像创建的运行实例,他可以被启动,停止,删除。创建的每个容器都是相互隔离,互不可见的,保证平台的安全性。还可以把容器看做简易版的Linux环境,Docker利用容器来运行和隔离应用
- 仓库:用来集中保存镜像的地方,创建自己的镜像后,使用push命令上传到公共仓库(public)或者私有仓库(private),下次要在另一台机器使用镜像时只需从仓库上pull下来就行,仓库注册服务器(Registry)是存放仓库的地方,其中包含了多个库,每个仓库集中存放某一类镜像,使用不同标签进行区分,目前最大的公共仓库是Docker Hub 其中存放了数量庞大的镜像供用户下载使用
安装基础软件包
yum install -y wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack yum-utils
安装docker-ce
安装docker依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
配置docker-ce国内yum源(阿里云)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker-ce
yum install docker-ce -y
启动docker并设置开机启动
systemctl start docker && systemctl enable docker
systemctl status docker #查看docker状态
docker version #查看Docker版本
docker info #详细查看Docker 信息
开启包转发功能和修改内核参数
内核参数修改:br_netfilter模块用于将桥接流量转发至iptables链,br_netfilter内核参数需要开启转发。
modprobe br_netfilter
cat > /etc/sysctl.d/docker.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl -p /etc/sysctl.d/docker.conf #使参数生效
重启后模块失效,下面是开机自动加载模块的脚本
vim /etc/rc.sysinit
#!/bin/bash
for file in /etc/sysconfig/modules/*.modules ; do
[ -x $file ] && $file
done
在/etc/sysconfig/modules/目录下新建文件如下
vim /etc/sysconfig/modules/br_netfilter.modules
modprobe br_netfilter
chmod 755 /etc/sysconfig/modules/br_netfilter.modules #增加权限
lsmod |grep br_netfilter #重启机器模块也会自动加载
systemctl restart docker #重启docker
如果出现下面报错:
Docker 安装后出现:WARNING: bridge-nf-call-iptables is disabled 的解决办法:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1:
将Linux系统作为路由或者VPN服务就必须要开启IP转发功能。当linux主机有多个网卡时一个网卡收到的信息是否能够传递给其他的网卡 ,如果设置成1 的话 可以进行数据包转发,可以实现VxLAN 等功能。不开启会导致docker部署应用无法访问。
配置docker镜像加速器
登陆阿里云 ,进入控制台,找到容器镜像服务镜像仓库
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
阿里云镜像加速,增加pull 镜像速度,search还是去官网查找,下载则是阿里云下载
找到镜像加速器,可以直接复制里面的内容,直接运行,每个人的镜像网站不一致,只能用自己的
测试是否成功,看这里的网址是否和阿里上的一致
{
"registry-mirrors":["https://y8y6vosv.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"]
}
docker info
在docker容器中使用Ctrl+d即可退出容器
Centos8使用官方源
centos8默认使用podman代替docker,直接装出现类似下面这种报错
yum erase podman buildah -y #卸载podman和buildah
yum install -y yum-utils device-mapper-persistent-data lvm2 #解决依赖
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #添加官方源
yum install docker-ce docker-ce-cli containerd.io -y #安装
systemctl daemon-reload
systemctl restart docker