栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

rhel8安装docker-ce

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

rhel8安装docker-ce

rhel8安装docker-ce
    • Docker解决了什么问题
    • 安装DOcker
      • 内核开启路由转发
      • 开启防火墙的IP伪装
      • 检查是否开启extras仓库
      • 卸载旧版本Docker-CE(如果有)
      • 安装yum-utils(dnf无需安装)
      • 添加docker-ce的软件仓库(aliyun)
      • 卸载podman冲突包(Centos8无需执行)
      • 安装docker-ce
      • 开机自启动docker服务并现在启动
      • 查看docker版本
    • 配置docker存储目录
      • 查看docker的默认存储目录
      • 修改docker主配置文件
      • 重启docker服务
      • 查看新的存储目录
    • 配置国内镜像加速源
      • 编辑docker配置文件
      • 添加源配置信息
      • 如果和存储目录一起修改
      • 改完要重启docker服务
      • 拉取测试镜像
    • 配置http代理访问docker海外镜像源
      • 安装privoxy
      • 编辑privoxy配置文件
      • 配置docker使用http代理
      • 重启docker服务
      • 验证配置是否成功
      • 拉取海外镜像测试
    • 配置socks5代理访问docker海外镜像
      • 配置docker使用socks5代理
      • 重启docker服务
      • 验证配置是否成功
      • 拉取海外镜像测试

系统版本声明: rhel8

Docker解决了什么问题

Docker解决了"程序在我这跑的好好的,在你那怎么就不能运行了呢!"
解决了环境一致性的问题.
容器就是将一套运行环境打包成一个镜像.实现开箱即用.
容器不是虚拟机,与宿主机共享一个内核.


安装DOcker

参考文档: https://help.aliyun.com/document_detail/264695.html#section-m0l-g22-ska


内核开启路由转发
[root@node-0001 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.proxy_arp = 1

# 是内核配置生效
[root@node-0001 ~]# sysctl -p

开启防火墙的IP伪装
# 允许防火墙伪装IP
firewall-cmd --add-masquerade
firewall-cmd --add-masquerade --permanent

检查是否开启extras仓库
yum repolist

卸载旧版本Docker-CE(如果有)
sudo yum -y remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-engine

安装yum-utils(dnf无需安装)
yum install -y yum-utils

添加docker-ce的软件仓库(aliyun)
dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 查看repolist中docker-ce仓库是否添加成功
yum repolist

卸载podman冲突包(Centos8无需执行)
# 卸载podman冲突包
yum erase podman buildah -y

#方法2: 安装时使用--allowerasing参数自动替换冲突包
yum -y install docker-ce --allowerasing

安装docker-ce
dnf -y install docker-ce

开机自启动docker服务并现在启动
systemctl start --now docker

查看docker版本
docker --version

配置docker存储目录

有些服务器分区的var目录不是独立的分区.而是和/分区共用的.而docker默认的存储路径是在/var/lib/docker,这就很容易导致将/分区磁盘空间占满.


查看docker的默认存储目录
docker info

# 默认目录是:
## Docker Root Dir: /var/lib/docker

修改docker主配置文件
# 创建/etc/docker目录(如果没有)
mkdir -p /etc/docker

vim /etc/docker/daemon.json 

# 写入配置信息
{
  "data-root": "/data/docker"
}

重启docker服务
# 重载服务(如果出错就执行)
systemctl daemon-reload

# 重启docker服务
systemctl restart docker

查看新的存储目录
docker info

# 默认目录是:
## Docker Root Dir: /data/docker

配置国内镜像加速源

docker的默认镜像源在美国,国内下载会很慢,可以修改为国内的镜像源地址.


编辑docker配置文件
vim /etc/docker/daemon.json 

添加源配置信息
{
  "registry-mirrors": [
    "https://isdp30x2.mirror.aliyuncs.com"
  ]
}

如果和存储目录一起修改
{
  "data-root": "/data/docker"
  "registry-mirrors": [
    "https://isdp30x2.mirror.aliyuncs.com"
  ]
}

改完要重启docker服务
# 重载服务(如果出错就执行)
sudo systemctl daemon-reload

# 重启docker服务 
sudo systemctl restart docker

拉取测试镜像
[rhel8 root ~]# docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

配置http代理访问docker海外镜像源

有些情况下,我们生产环境需要拉取海外的镜像源,但是拉取镜像时会超时.这时候需要给docker配置代理.


安装privoxy
# 安装epel源
yum -y install epel-release

# 安装privoxy(将socks5转换成http)
yum install privoxy -y

# 开启privoxy服务
systemctl enable --now privoxy

编辑privoxy配置文件
# 编辑privoxy主配置文件
vim /etc/privoxy/config

修改配置内容
加上如下配置,注意最后的点号。
forward-socks5 的 DNS 解析会在远程服务器上进行,而 forward-socks5t却不会,这就导致使用后者访问境外网站的时候 ,国内 DNS 无法解析境外网址的情况,从而也就不知道去访问哪个IP。一般来说,还是建议使用 forward-socks5。

# 监听本地所有ip的8118端口(http)
#listen-address  0.0.0.0:8118
listen-address  127.0.0.1:8118

# 当有连接访问本地的8118端口时,通过socks5协议转发到192.168.199.11:10808端口
forward-socks5 / 192.168.199.11:10808 .

修改完配置文件要重启privoxy服务

systemctl restart privoxy

查看本地的8118端口是否处于监听状态

netstat -tunlp
# 或
ss -tunlp

配置docker使用http代理
# 1.创建docker服务插件目录
sudo mkdir -p /etc/systemd/system/docker.service.d

# 2.创建一个名为proxy.conf的文件
sudo touch /etc/systemd/system/docker.service.d/proxy.conf

# 3.编辑http-proxy.conf的文件
sudo vim /etc/systemd/system/docker.service.d/proxy.conf

# 4.写入内容(将代理ip和代理端口修改成你自己的)
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:8118" 
Environment="HTTPS_PROXY=http://127.0.0.1:8118" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com,hub-mirror.c.163.com,mirror.baidubce.com"

重启docker服务
# 重载扫描
systemctl daemon-reload

# 重启docker服务
systemctl restart docker

验证配置是否成功
systemctl show --property=Environment docker

拉取海外镜像测试
docker pull gcr.io/google-containers/ubuntu:14.04

配置socks5代理访问docker海外镜像

参考地址: https://zhuanlan.zhihu.com/p/414473668


配置docker使用socks5代理

另外如果需要使用http代理,只需要将socks5替换成http。

#
# 1.创建docker服务插件目录
sudo mkdir -p /etc/systemd/system/docker.service.d

# 2.创建一个名为proxy.conf的文件
sudo touch /etc/systemd/system/docker.service.d/proxy.conf

# 3.编辑http-proxy.conf的文件
sudo vim /etc/systemd/system/docker.service.d/proxy.conf

# 4.写入内容(将代理ip和代理端口修改成你自己的)
[Service]
Environment="HTTP_PROXY=socks5://127.0.0.1:1080"
Environment="HTTPS_PROXY=socks5://127.0.0.1:1080"  "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com,hub-mirror.c.163.com,mirror.baidubce.com"

重启docker服务
# 重载扫描
systemctl daemon-reload

# 重启docker服务
systemctl restart docker

验证配置是否成功
systemctl show --property=Environment docker

拉取海外镜像测试
docker pull gcr.io/google-containers/ubuntu:14.04
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/388802.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号