大师架构系列-Docker搭建与配置优化
程序员文章站
2022-03-09 22:51:03
...
以Centos8安装为例
更新Centos Yum源为阿里云源,提高下载速度
# 更换组件源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
# 生成缓存
yum makecache
安装Docker前准备工作
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
关闭防火墙与增强型安全功能
systemctl stop firewalld.service
systemctl disable firewalld.service
采用iptables
yum install iptables iptables-services
# Disable SELINUX
setenforce 0
sed -i 's/^SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config
因为容器组件依赖版本的问题,大概率会出现以下问题
Problem: package docker-ce-3:19.03.4-3.el7.x86_64 requires containerd.io >= 1.2.2-3 那就先装新版的 containerd.io
解决办法:
# 打开docker官方依赖包地址
https://download.docker.com/linux/centos/8/x86_64/stable/Packages/
# 找到最新版本的组件,有件复制地址进行安装
yum install https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.3.7-3.1.el8.x86_64.rpm
准备工作准备完毕,现在可以执行Docker安装
# 安装Docker
yum install docker-ce docker-ce-cli
# 安装完成后检验
docker --version
# 启动Docker
sudo systemctl start docker
开机自启
sudo systemctl enable docker
为了加速Docker构建,可以进行如下操作
# 在/etc/docker/目录下新建配置文件daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://k2hk3nbm.mirror.aliyuncs.com"]
}
EOF
# 阿里云镜像地址可以从阿里云控制台获取
配置完重启动Docker
sudo systemctl restart docker
docker-compose安装
# 可以在以下地址,查看docker-compose最新版本
https://github.com/docker/compose/releases/
因为github地址经常很慢,所以选择国内源进行安装
curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
替换链接中1.27.4为最新的版本号即可
增加执行权限
chmod +x /usr/local/bin/docker-compose
安装完成校验
docker-compose -v
# docker-compose version 1.27.4, build 40524192
系统配置转发
编辑文件/etc/sysctl.conf,增加以下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1
net.ipv4.ip_forward = 1
问题处理:
ERROR: for redis Cannot start service redis: driver failed programming external connectivity on endpoint env-redis (ab47b52ebf9ce02553fdf6beae167b041f89a4ec68b6aae5a306c5367b8d7612): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 6379 -j DNAT --to-destination 172.18.0.2:6379 ! -i br-27901d413de9: iptables: No chain/target/match by that name.
处理办法:
systemctl restart docker
问题处理:
Could not connect to Redis at 10.211.55.4:6379: Connection refused
处理办法:
端口监听,可能只监听了本地127.0.0.1,应该改成0.0.0.0
如果需要连接Github拉取代码进行构建,可以通过ssh连接的方式
# 使用如下命令生成** XXX等请替换成个人邮箱
ssh-****** -t rsa -b 4096 -C “aaa@qq.com"
然后一路回车到结束
# 复制公钥到Github并在SSH里配置
cat ~/.ssh/id_rsa.pub
# 配置完成后,通过以下命令进行验证,输入yes
ssh -T aaa@qq.com
下一篇: Android对话框
推荐阅读