docker 1.12 版本要求 CentOS 7 ,生产环境系统升级到 CentOS 7 后安装 docker 环境步骤简单记录备忘。
升级 linux 内核
当前系统内核
# uname -r
3.10.0-327.el7.x86_64
1. 下载新内核文件
在 https://cdn.kernel.org/ 上看到当前最新稳定版本是 4.8.3 。
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.8.3.tar.xz
2.解压
拷贝到压缩包到 /usr/src 下
cp linux-4.8.3.tar.xz /usr/src
cd /usr/src
tar -xJf linux-4.8.3.tar.xz
3. 清除残留编译文件
cd linux-4.8.3
make mrproper && make clean
发现没有 gcc ,所以先安装 gcc 。
yum install -y gcc
安装完成后重新执行 make 。
4. 生成编译配置表
make oldconfig
默认配置,一路回车即可。
5. 编译
make
编译过程中报错 openssl/opensslv.h:没有那个文件或目录
yum install -y openssl-devel
安装完成后重新编译。
6. 编译安装模块
make modules && make modules_install
make install
7. 修改启动项&重启
到此安装结束,重启可以看到内核没变,有可能是启动顺序没改。
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.8.3) 7 (Core)
CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-22be0cd4be87429fa67b5df5203a9126) 7 (Core)
修改启动项
grub2-set-default 0
再重启就 OK 了。
uname -r
4.8.3
如果对内核版本没有要求,只是更新到最新稳定版本,直接用 yum 简单 3 步即可完成。
导入 Public Keyrpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
升级内核
yum --enablerepo=elrepo-kernel install kernel-lt -y
修改启动项
grub2-set-default 0
安装 docker
按照 docker 官网文档安装即可。
1. 添加源
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
2. 安装
yum install -y docker-engine
3. 启动服务
systemctl enable docker.service
4. 启动镜像
systemctl start docker
5. 验证
docker run --rm hello-world
6. 创建 docker 组
sudo groupadd docker
7. 添加用户到 docker 组
groupadd ops
useradd -G ops -g ops ops
sudo usermod -aG docker your_username`
设置 docker 的启动参数
docker 默认使用的存储启动是 device-mapper ,需要改成 overlay 。
1. 安装 overlay
sudo tee /etc/modules-load.d/overlay.conf <<-'EOF'
overlay
EOF
重启后确认是否安装成功。
lsmod | grep overlay
overlay 49152 0
2. 修改 docker 启动参数
启用 docker.service 后,在 /etc/systemd/system/multi-user.target.wants
目录会生成 docker.service 文件连接,修改文件中的 ExecStart=/usr/bin/dockerd
。
cd /etc/systemd/system/multi-user.target.wants
添加启动参数
ExecStart=/usr/bin/dockerd --storage-driver=overlay2 --graph="/home/docker"
重启系统。
关闭 firewalld
firewalld 是 CentOS 7 引入的新服务,参考 Firewalld 试用
systemctl stop firewalld.service
systemctl disable firewalld.service
关闭 selinux
vi /etc/selinux/config
SELINUX=disabled
文件共享
有 p75 和 p76 两台机器,需要将两台机器的 /u01/data/conf 目录共享。
1. 安装
yum install -y glusterfs glusterfs-server glusterfs-fuse
glusterfs --version
2. 启动服务
service glusterd start
service glusterfsd start
3. 添加节点
在任意节点执行即可。
gluster peer probe p76
gluster pool list
UUID Hostname State
6a6962c3-42ab-49bf-9844-9e98cf419613 p76 Connected
a0c173b4-341a-4f47-9eea-5e2ca9713665 localhost Connected
4. 创建数据目录
mkdir -p /opt/data/conf
gluster volume create gv3 replica 2 transport tcp p75:/u01/data/conf p76:/u01/data/conf force
gluster volume info
5. 启动
gluster volume start gv3
6. 安装 glusterfs 客户端
将 p76 设置为客户端。
yum -y install glusterfs glusterfs-fuse
7. 挂载目录
mkdir -p /opt/data/conf
mount -t glusterfs -o rw p75:gv3 /opt/data/conf
至此,配置完成。在 p76 的 /opt/data/conf 目录放置的配置文件,在 p75 和 p76 的 /u01/data/conf 目录都能读取到。
共享目录解决的是配置文件共享的问题,统一日志收集用ELK。