Jenkins 安装完成后,需要继续配置 Docker 环境,才能进行 Docker 镜像的构建。
Docker 简介
官方网站:https://www.docker.com/
官方文档:https://docs.docker.com/install/
GitHub :https://github.com/docker/docker-ce
1、什么是 Docker ?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker社区版(CE):为了开发人员或小团队创建基于容器的应用,与团队成员分享和自动化的开发管道。docker-ce提供了简单的安装和快速的安装,以便可以立即开始开发。docker-ce集成和优化,基础设施。(免费)
Docker企业版(EE):专为企业的发展和IT团队建立谁。docker-ee为企业提供最安全的容器平台,以应用为中心的平台。(付费)
2、Docker 概念
Docker是开发人员和系统管理员 使用容器开发,部署和运行应用程序的平台。使用Linux容器部署应用程序称为容器化。容器不是新的,但它们用于轻松部署应用程序。
容器化越来越受欢迎,因为容器是:
- 灵活:即使是最复杂的应用也可以集装箱化。
- 轻量级:容器利用并共享主机内核。
- 可互换:您可以即时部署更新和升级。
- 便携式:您可以在本地构建,部署到云,并在任何地方运行。
- 可扩展:您可以增加并自动分发容器副本。
- 可堆叠:您可以垂直和即时堆叠服务。
Docker 安装
官方安装指南: https://docs.docker.com/install/linux/docker-ce/centos/
1、建立 docker 用户组
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
# 定义用户名
[root@docker]# NEW_USER=docker
# 添加用户(可选)
[root@docker]# sudo adduser $NEW_USER
# 为新用户设置密码
[root@docker]# sudo passwd $NEW_USER
# 为新用户添加sudo权限
[root@docker]# sudo echo "$NEW_USER ALL=(ALL) ALL" >> /etc/sudoers
#建立 docker 组
[root@docker]# sudo groupadd docker
# 把当前用户加入docker组
[root@docker]# sudo usermod -aG docker $NEW_USER;
2、安装 Docker CE
Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。
最新版本:
# step 1: 卸载旧版本Docker软件
# 旧版本的 Docker 称为 docker 或者 docker-engine。为防止版本冲突,安装前使用以下命令卸载旧版本以及相关的依赖项:
sudo yum -y remove docker \
docker-ce-cli \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
containerd
# step 2: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 bash-completion
# Step 3: 添加软件源信息(根据主机所在网络情况选择下面的yum源)
# 阿里云yum源(推荐)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 官方yum源
# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 注意:如果需要最新版本的 Docker CE,可以开启测试版本的list:
# sudo yum-config-manager --enable docker-ce-edge
# sudo yum-config-manager --enable docker-ce-test
# Step 4: 更新并安装 Docker-CE(根据情况选择最新版本还是指定版本)
sudo yum makecache -y
#查看可用版本的 Docker-ce
yum list docker-ce --showduplicates | sort -r
# 安装最新版本
sudo yum install -y docker-ce docker-ce-cli docker-ce-selinux containerd.io
# 设置开机启动
sudo systemctl enable docker
sudo systemctl start docker
# 检查 docker 版本
docker version
Docker-Engine Docker官方已经不推荐使用,请安装Docker-CE。
3、Docker 配置
对于通过systemd来管理服务的系统(比如CentOS7.X、Ubuntu16.X), Docker有两处可以配置参数: 一个是docker.service服务配置文件,一个是Docker daemon配置文件daemon.json。
1、docker.service
对于CentOS系统,docker.service 默认位于
/usr/lib/systemd/system/docker.service
;对于Ubuntu系统,docker.service默认位于/lib/systemd/system/docker.service
2、daemon.json
daemon.json默认位于
/etc/docker/daemon.json
,如果没有可手动创建,基于systemd管理的系统都是相同的路径。通过修改daemon.json
来改过Docker配置,也是Docker官方推荐的方法。
以下说明均基于systemd,并通过
/etc/docker/daemon.json
来修改配置。
3.1、配置镜像下载和上传并发数
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 国内镜像加速。
从Docker1.12开始,支持自定义下载和上传镜像的并发数,默认值上传为3个并发,下载为5个并发。通过添加”max-concurrent-downloads”和”max-concurrent-uploads”参数对其修改:
"max-concurrent-downloads": 3,
"max-concurrent-uploads": 5
3.2、配置镜像加速地址
Rancher从v1.6.15开始到v2.x.x,Rancher系统相关的所有镜像(包括1.6.x上的K8S镜像)都托管在Dockerhub仓库。Dockerhub节点在国外,国内直接拉取镜像会有些缓慢。为了加速镜像的下载,可以给Docker配置国内的镜像地址。
编辑/etc/docker/daemon.json
加入以下内容
{
"registry-mirrors": ["https://7bezldxe.mirror.aliyuncs.com/","https://IP:PORT/"]
}
可以设置多个registry-mirrors地址,以数组形式书写,地址需要添加协议头(https或者http)。
3.3、配置insecure-registries私有仓库
Docker默认只信任TLS加密的仓库地址(https),所有非https仓库默认无法登陆也无法拉取镜像。insecure-registries字面意思为不安全的仓库,通过添加这个参数对非https仓库进行授信。可以设置多个insecure-registries地址,以数组形式书写,地址不能添加协议头(http)。
编辑/etc/docker/daemon.json
加入以下内容:
{
"insecure-registries": ["192.168.1.100","IP:PORT"]
}
3.4、配置Docker存储驱动
OverlayFS是一个新一代的联合文件系统,类似于AUFS,但速度更快,实现更简单。Docker为OverlayFS
提供了两个存储驱动程序:旧版的overlay
,新版的overlay2
(更稳定)。
编辑/etc/docker/daemon.json
加入以下内容
{
"storage-driver": "overlay2",
"storage-opts": ["overlay2.override_kernel_check=true"]
}
3.5、配置日志驱动
容器在运行时会产生大量日志文件,很容易占满磁盘空间。通过配置日志驱动来限制文件大小与文件的数量。 >限制单个日志文件为100M,最多产生3个日志文件
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
文件 /etc/docker/daemon.json 综合配置示例:
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://7bezldxe.mirror.aliyuncs.com","http://f1361db2.m.daocloud.io"],
"insecure-registries": ["192.168.1.111"],
"max-concurrent-downloads": 3,
"max-concurrent-uploads": 5,
"storage-driver": "overlay2",
"storage-opts": ["overlay2.override_kernel_check=true"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
重启 docker
systemctl daemon-reload
systemctl restart docker
Docker 插件
1、插件安装
2、插件全局配置
进入 Jenkins -> Global Tool Configuration 下
- 设置别名,如: docker-19.03.5
- 指定安装目录,如:/var/lib/docker
参考文档
更新时间:2023-12-28 09:15