Docker官网:https://docs.docker.com/
Docker的github地址:https://github.com/moby/moby
Dockerhub官网: https://registry.hub.docker.com
Docker官方registry镜像加速:https://dashboard.daocloud.io/mirror
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何支持 docker 的机器上运 行。容器是完全使用沙箱机制,相互之间不会有任何接口调用。
优点
1)快
运行时的性能快,管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。
2)敏捷
像虚拟机一样敏捷,而且会更便宜,在 bare metal(裸机)上布署像点个按钮一样简单。
3)灵活
将应用和系统“容器化”,不添加额外的操作系统
4)轻量
在一台服务器上可以布署 100~1000 个 Containers 容器。
5)便宜
开源的,免费的,低成本的。
缺点
所有容器共用 linux kernel 资源,资源能否实现最大限度利用,所以在安全上也会存在漏洞。
目前最近的两个版本
docker-ce和docker-ee
主机: 192.168.2.86
Centos7.9
4Gib/4vCPU
a 配置主机名
b 关闭防火墙
一般两种方式可以直接关闭或者关闭iptables防火墙规则
安装iptables
yum install iptables-services -y
禁用iptables:
service iptables stop && systemctl disable iptables
清空防火墙规则
iptables -F
c 关闭selinux安全增强
修改配置后,重启机器可永久生效。
查看是否成功 getenforce 显示disabled表示关闭成功
d 配置时间同步
yum install -y ntp ntpdate
ntpdate cn.pool.ntp.org
#编写计划任务
crontab -e命令执行
文件中添加* */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
重启crond服务使配置生效:
systemctl restart crond
e 安装基础软件包
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 wget vim
ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server
socat ipvsadm conntrack
f 安装docker-ce
#配置docker-ce国内源(阿里云)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
注:可能yum-config-manager未安装,需要自己安装
yum -y install yum-utils(此命令在这个安装包里面)
#安装docker依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
#安装docker-ce
yum install docker-ce -y
#查看安装是否成功以及版本
g 启动docker服务
systemctl start docker && systemctl enable docker
systemctl status docker
内核参数修改:br_netfilter 模块用于将桥接流量转发至 iptables 链,br_netfilter 内核参数需要开启转发。
#使参数生效
注:可以修改为开机自动加载模块脚本
在/etc新建rc.sysinit文件
#!/bin/bash
for file in /etc/sysconfig/modules/*.modules ; do
[ -x $file ] && $file
done
在/etc/sysconfig/modules/目录下新建文件如下:
modprobe br_netfilter
增加权限:
chmod 755 /etc/sysconfig/modules/br_netfilter.modules
重启机器模块也会自动加载
lsmod | grep br_netfilter
注:
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 部署应用无法访问。
登陆阿里云镜像仓库
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
如果没有开通,可开通阿里云的镜像服务
修改/etc/docker/daemon.json
让配置文件生效:
systemctl daemon-reload
systemctl restart docker
1 镜像相关操作
#从dockerhub查找镜像
docker search centos
解释说明:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否docker 官方发布
stars: 类似Github 里面的star,表示点赞、喜欢的意思。AUTOMATED: 自动构建。
#下载镜像
docker pull centos
#查看本地镜像
docker images
#将镜像做成离线压缩包
docker save -o centos.tar.gz centos
#解压离线镜像包
docker load -i cnetos.tar.gz
#删除镜像
docker rmi -f centos:latest