CentOS 7配置南大docker镜像

标签: 学习笔记  centos  docker  环境

CentOS 7配置南大docker镜像

0.帮助页面

南大docker源:https://mirrors.nju.edu.cn/docker-ce/

南大docker源使用帮助:https://nju-mirror-help.njuer.org/docker-ce.html

官方安装文档:https://docs.docker.com/engine/install/

官方CentOS配置教程:https://docs.docker.com/engine/install/centos/

1.系统要求

  • 桌面级系统:
Platformx86_64 / amd64
Docker Desktop for Mac (macOS)
Docker Desktop for Windows
  • 服务器级系统
Platformx86_64 / amd64ARMARM64 / AARCH64
CentOS
Debian
Fedora
Raspbian
Ubuntu

2.卸载旧版本(没有旧版本可跳过)

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

如果没有旧版本仍输入此指令,则会提示none of these packages are installed

3.安装方式

根据官方文档,有3种可以使用的安装方式

对于一般用户来说只要选择第一种即可,即本文档的方式

4.准备工作

  • 安装yum-util包(非第一次安装可跳过)
sudo yum install -y yum-utils
  • 配置docker源

使用南大源,使用mirrors.nju.edu.cn/docker-ce

sudo yum-config-manager \
    --add-repo \
    https://mirrors.nju.edu.cn/docker-ce/linux/centos/docker-ce.repo

提示成功

Loaded plugins: fastestmirror, langpacks
adding repo from: https://mirrors.nju.edu.cn/docker-ce/linux/centos/docker-ce.repo
grabbing file https://mirrors.nju.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
  • 更换南大源

从南大源上下载的docker-ce.repo与官方下载的是一样的,需要将文件内容中的download.docker.com也改成mirrors.nju.edu.cn/docker-ce

使用vim编辑配置文件

vim /etc/yum.repos.d/docker-ce.repo

按i进入编辑模式

按ESC退出编辑模式

退出编辑模式后按“:”进入命令模式

命令模式输入”%s/源字符串/目的字符串/g“批量替换

%s/download.docker.com/mirrors.nju.edu.cn\/docker-ce/g

输入后提示有24项被替换

南大源链接中有“/”字符,需要在其前面加上”\“字符转义

最后的参数g表示全局匹配,有其他的参数可自行百度

命令模式输入wq保存退出

5.可选操作

一般可以直接跳过这一步

选择docker版本(默认为stable)

docker有三种版本:stable,test和nightly

以下是官方对三种版本的介绍

Stable

Year-month releases are made from a release branch diverged from the master branch. The branch is created with format <year>.<month>, for example 18.09. The year-month name indicates the earliest possible calendar month to expect the release to be generally available. All further patch releases are performed from that branch. For example, once v18.09.0 is released, all subsequent patch releases are built from the 18.09 branch.

Test

In preparation for a new year-month release, a branch is created from the master branch with format YY.mm when the milestones desired by Docker for the release have achieved feature-complete. Pre-releases such as betas and release candidates are conducted from their respective release branches. Patch releases and the corresponding pre-releases are performed from within the corresponding release branch.

Nightly

Nightly builds give you the latest builds of work in progress for the next major release. They are created once per day from the master branch with the version format:

0.0.0-YYYYmmddHHMMSS-abcdefabcdef

where the time is the commit time in UTC and the final suffix is the prefix of the commit hash, for example 0.0.0-20180720214833-f61e0f7.

These builds allow for testing from the latest code on the master branch.

Note: No qualifications or guarantees are made for the nightly builds.

  • 使用nightly(默认关闭)
sudo yum-config-manager --enable docker-ce-nightly
  • 使用test(默认关闭)
sudo yum-config-manager --enable docker-ce-test
  • 手动关闭nightly
sudo yum-config-manager --disable docker-ce-nightly
  • 手动关闭test
sudo yum-config-manager --disable docker-ce-test

6.安装docker引擎

输入以下命令安装docker引擎

sudo yum install docker-ce docker-ce-cli containerd.io

中间会有提示验证GPG key,检查fingerprint是否为060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,无误后输入y继续

如果需要安装指定版本,请在安装包后面添加版本名,即:

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

7. (可选)修改配置文件防止与xshell连接冲突

如果是在服务器上安装docker,那么可能需要进行此操作

原因我也没有详细了解过,只是在第一次安装后直接启动docker,发现启动后xshell连接立即中断,只能使用云平台的网页控制台才能连接

应该是网络服务上docker与xshell发生了一些冲突

网上资料:https://my.oschina.net/u/4337166/blog/3578106

网上原因分析(看不懂):

经排查,原来此环境windows机器的IP 为172.17.79.88,安装docker(1.13.0)后docker创建了一个虚拟网络桥连,恰好也使用了172.17.1.0/16的网段,172.17.79.88直接找到了docker的网段IP(172.17.0.1),而部署目标服务器IP,从而导致无法通过Xshell ssh上目标服务器!

既然找到了原因,我们就让docker避开172.17.18.0/24网段,改成172.20.1.0/16,也避免与一般的家用路由器IP段相撞。

解决方案如下:

  • 修改配置文件

修改第一个配置文件

vim /etc/default/docker

在文件中添加一行(我操作时文件不存在,即在vim中显示为空)

DOCKER_OPTS="--bip=172.20.1.0/16"

修改第二个配置文件

vim /etc/systemd/system/docker.service

如果文件没有内容,则退出后修改另一个文件,如果有内容则继续下一步

vim /lib/systemd/system/docker.service

在文件的[Service]选项中删除原来的EnvironmentFile和ExecStart,将以下内容添加到[Service]选项中,修改后如图所示

EnvironmentFile=-/etc/default/docker
ExecStart=/usr/bin/dockerd  $DOCKER_OPTS

image-20200922113527220

8.启动docker

  • 使用以下命令启动docker
sudo systemctl start docker

如果此时出现xshell断开连接的情况,请确认第7步没有问题。

如果依然第7步做完依然出现此情况,可以尝试输入reboot重启计算机再试

  • 使用以下命令测试docker
sudo docker run hello-world

出现以下输入说明docker配置成功

image-20200922115711575

版权声明:本文为w865629524原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/w865629524/article/details/108728624

智能推荐

Java编程思想 第三章:操作符

Java中的操作符和c/c++中的操作符基本一致,因为我之前学习过C语言和C++,所以本章的内容大部分都已熟知,下面只做简单的介绍。 Java操作符及优先级 Java中的操作符包括算术操作符,关系操作符,逻辑操作符,位运算符、自操作运算符、移位运算符、赋值运算符和其他运算符。 算术操作符:包括加减乘除和取余(%),优先级乘除取余高于加减,都是双元运算符,其中加法(+)可以用来连接两个字符串,比如:...

JetBrains 系列开发工具,如何配置 `SCSS` `File Watcher` ,相关输出配置参数详解:webStorm phpStorm IDEA

JetBrains 系列开发工具,如何配置 SCSS File Watcher ,相关输出配置参数详解:webStorm phpStorm IDEA 前言 你目前已经了解了如何使用 SCSS 进行开发,了解了该文章的内容:『 SCSS 日常用法 』 在 JetBrains 系列开发工具中通过 FileWatcher 进行编译的 SCSS 文件都是通过 sass 这个程序进行的。『 如何添加 Fil...

C语言小函数—二进制与十六进制

测试如下 “` int main() { long int num = 15; } “`...

仿微博或微信的文章多图显示(自定义MultiImageView)

按照一般的规矩,先上张图来供大伙看看 如果大致是大伙们需要实现的功能,不烦一观 自定义MultiImageView 工具类 具体使用 app.gradle中添加依赖 implementation 'com.github.bumptech.glide:glide:4.8.0' AndroidManifest.xml中配置联网权限 <uses-permission android:name=&q...

经典进程同步和互斥问题

经典进程同步与互斥问题 前言 一、生产者-消费者问题 1.问题描述 2.问题分析 3.代码 二、读者-写者问题 1.问题描述&&分析 2.代码 三、哲学家进餐问题 1.问题描述&&分析 2.代码 四、理发师问题 1.问题描述&&分析 2.代码 前言 在多道程序设计环境中,进程同步是一个非常重要的问题,下面讨论几个经典的进程同步问题。 一、生产者-消费...

猜你喜欢

java设计模式——ThreadLocal线程单例

1、定义一个ThreadLocal线程单例,代码如下: 2、定义一个多线程类,代码如下: 3、定义一个测试类,代码如下: 4、输出结果,如下图:...

【tensorflow】线性模型实战

线性模型:y = 1.477 * x + 0.089   1. 采样数据 采样噪声eps在均值0,方差0.01的高斯分布中,而后在均匀分布U(0,1)中,区间[-10,10]进行n=100次随机采样:   2. 计算误差 循环计算每个点的预测值与真是值之间差的平方并累加,从而获得训练集上的均芳误差损失值。   3. 计算梯度   4. 梯度更新 对权重w和偏...

常见损失函数和评价指标总结(附公式&代码)

网上看到一篇很实用的帖子关于常见损失函数和评价指标,收藏下来 本文转载于https://zhuanlan.zhihu.com/p/91511706 ------------------------------------------------------------------------------------------------------------------------------...

为什么 4G/5G 的直播延时依然很高

通信技术的发展促进了视频点播和直播业务的兴起,4G 和 5G 网络技术的进步也使得流媒体技术变得越来越重要,但是网络技术并不能解决流媒体直播的高延迟问题。 本文不会介绍网络对直播业务的影响,而是会分析直播中常见的现象 — 主播和观众之间能够感觉到的明显网络延迟。除了业务上要求的延迟直播之外,有哪些因素会导致视频直播的延迟这么高呢? live-streaming  图 1 - ...

springboot 过滤器Filter vs 拦截器Interceptor 详解

1 前言       最近接触到了过滤器和拦截器,网上查了查资料,这里记录一下,这篇文章就来仔细剖析下过滤器和拦截器的区别与联系。 2 拦截器与过滤器之间的区别 从上面对拦截器与过滤器的描述来看,它俩是非常相似的,都能对客户端发来的请求进行处理,它们的区别如下: 作用域不同 过滤器依赖于servlet容器,只能在 servlet容器,web环境下使用 拦截器依赖于sp...