Docker 在线安装与离线安装
在线安装参考的是 Docker 官方文档(现在应该没有“Install on CentOS”了)。
离线安装使用的包是学校教学发放的。
Docker 在线安装#
系统要求#
# CentOS 7 满足最低的内核要求,内核版本至少3.10
# 查看内核版本 与 发行版本
[root@localhost ~]# uname -r
3.10.0-862.el7.x86_64
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
存储源#
## 换源
# 下载阿里共享源
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2523 100 2523 0 0 1426 0 0:00:01 0:00:01 --:--:-- 1427
# 下载 epel 源
[root@localhost ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 664 100 664 0 0 1131 0 --:--:-- --:--:-- --:--:-- 1133
[root@localhost ~]# yum clean all
[root@localhost ~]# yum repolist
## 设置 docker 源
# 安装 yum-utils
[root@localhost ~]# yum -y install yum-utils
# 利用 yum-utils 提供的工具添加 docker-ce.repo
[root@localhost ~]# yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror
adding repo from: https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
grabbing file https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
什么是epel ?
如果既想获得 RHEL 的高质量、高性能、高可靠性,又需要方便易用(关键是免费)的软件包更新功能,那么 Fedora Project 推出的 EPEL(Extra Packages for Enterprise Linux)正好适合你。EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。
什么是 yum-utils ?
管理repository及扩展包的工具 (主要是针对repository)
查看软件版本#
## 因为 repo 源过多,所以存在多个版本
# 列出所有 docker-ce
[root@localhost ~]# yum list docker-ce --showduplicates | sort
Available Packages
* base: mirrors.aliyun.com
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.3.ce-1.el7 docker-ce-stable
docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable
...
# 列出所有 docker-ce-cli
[root@localhost ~]# yum list docker-ce-cli --showduplicates | sort
Available Packages
* base: mirrors.aliyun.com
docker-ce-cli.x86_64 1:18.09.0-3.el7 docker-ce-stable
docker-ce-cli.x86_64 1:18.09.1-3.el7 docker-ce-stable
docker-ce-cli.x86_64 1:18.09.2-3.el7 docker-ce-stable
docker-ce-cli.x86_64 1:18.09.3-3.el7 docker-ce-stable
docker-ce-cli.x86_64 1:18.09.4-3.el7 docker-ce-stable
...
# 列出所有 containerd.io
[root@localhost ~]# yum list containerd.io --showduplicates | sort
Available Packages
* base: mirrors.aliyun.com
containerd.io.x86_64 1.2.0-1.2.beta.2.el7 docker-ce-stable
containerd.io.x86_64 1.2.0-2.0.rc.0.1.el7 docker-ce-stable
containerd.io.x86_64 1.2.0-2.2.rc.2.1.el7 docker-ce-stable
containerd.io.x86_64 1.2.0-3.el7 docker-ce-stable
containerd.io.x86_64 1.2.10-3.2.el7 docker-ce-stable
...
安装docker-ce#
# 挑选版本进行安装 格式:包名-版本号
[root@localhost ~]# yum -y install docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io
Installed:
containerd.io.x86_64 0:1.4.12-3.1.el7 docker-ce.x86_64 3:18.09.9-3.el7 docker-ce-cli.x86_64 1:18.09.9-3.el7
Dependency Installed:
audit-libs-python.x86_64 0:2.8.5-4.el7 checkpolicy.x86_64 0:2.5-8.el7 container-selinux.noarch 2:2.119.2-1.911c772.el7_8
libcgroup.x86_64 0:0.41-21.el7 libseccomp.x86_64 0:2.3.1-4.el7 libsemanage-python.x86_64 0:2.5-14.el7
policycoreutils-python.x86_64 0:2.5-34.el7 python-IPy.noarch 0:0.75-6.el7 setools-libs.x86_64 0:3.3.8-4.el7
Dependency Updated:
audit.x86_64 0:2.8.5-4.el7 audit-libs.x86_64 0:2.8.5-4.el7 libselinux.x86_64 0:2.5-15.el7
libselinux-python.x86_64 0:2.5-15.el7 libselinux-utils.x86_64 0:2.5-15.el7 libsemanage.x86_64 0:2.5-14.el7
libsepol.x86_64 0:2.5-10.el7 policycoreutils.x86_64 0:2.5-34.el7 selinux-policy.noarch 0:3.13.1-268.el7_9.2
selinux-policy-targeted.noarch 0:3.13.1-268.el7_9.2
# 启动并设置自启动 docker
[root@localhost ~]# systemctl enable --now docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
#检查版本是否安装成功
[root@localhost ~]# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.09.9
...
解决 WARNING!! 警告问题#
[root@localhost ~]# docker info
...
WARNING: bridge-nf-call-iptables is disabled # 出现警告(最后两行)
WARNING: bridge-nf-call-ip6tables is disabled
#编辑 sysctl.conf 文件并添加以下内容
[root@localhost ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker info # 警告消失
Docker 离线安装#
通过打好的包,不联网的情况安装
准备一台 CentOS7 的虚拟机
- 虚拟机资源准备:
- 2v_2d_80G CentOS7:1511 网络:nat
- (v: cpu d: 内存 G: 磁盘)
- 系统安装时的配置:
- 分区类型:lvm
- /home:7G
- /:70G
- 最小化安装
- kdump 关闭
基本配置#
-
修改主机名,做主机名映射
hostnamectl set-hostname docker1
-
关闭防火墙、selinux
systemctl disable --now firewalld
setenforce 0vi /etc/selinux/config (另一个配置文件会同步:/etc/sysconfig/selinux)
SELINUX=disabled -
设置 IP
vi /etc/sysconfig/network-scripts/ifcfg-eno16777..
BOOTPROTO=static
ONBOOT=yes
IPADDR=
GATEWAY=
PREFIX=24
NM_CONTROLLED=no -
配置仓库
把 Docker.tar.gz (通过 SecureCRT 或 Moba 等终端软件) 拉进虚拟机
解压 tar -zxvf Docker.tar.gz -C /opt
移走网络源 mv /etc/yum.repos.d/* /mediavi /etc/yum.repos.d/docker.repo
[docker]
name=docker
baseurl=file:///opt/Docker
gpgcheck=0
enabled=1
内核升级#
uname -a :查看内核版本。----- 3.10
yum upgrade -y:升级操作系统内核。
reboot 重启之后升级为 3.10.0-1062,网络源又会重新回来!删掉/移走都可以~
内核优化参数配置#
modprobe br_netfilter 加载网络防火墙模块
$ sysctl -a | grep ip_forward 查看
$ net.ipv4.ip_forward = 0 数据转发功能$ sysctl -a | grep nf-call 查看
$ net.bridge.bridge-nf-call-ip6tables = 1 ipv6 桥接转发
$ net.bridge.bridge-nf-call-iptables = 1 ipv4 桥接转发#上面的查看是为了方便复制 ~ 然后写入配置文件
vi /etc/sysctl.conf Linux内核优化参数配置文件net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1sysctl -p 加载以上三行参数
安装#
yum -y install docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
检查#
docker version:查看版本
docker info:查看详细信息
systemctl status docker:服务端
docker --help:客户端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程