如果docker run redis时,查看日志发现警告:

WARNING overcommit_memory is set to 0! Background save may fail under low memory cThe TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

需要在docker run后面加入 --sysctl net.core.somaxconn=1024,如:

docker run --restart=always --name=redis --sysctl net.core.somaxconn=1024 -d -v /etc/redis:/etc/redis -p 6379:6379 redis:alpine redis-server /etc/redis/redis.conf --appendonly yes

如果docker run redis时,查看日志发现警告:

WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

需要在服务器上执行 sysctl vm.overcommit_memory=1 或者执行一下语句:

echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf \
&& sysctl -p

Docker 官方提供的 docker 软件包存储库地址为 https://download.docker.com/linux/centos/docker-ce.repo,使用广州云服务器 ping download.docker.com 得到的IP是日本东京,也就意味着 Docker CE 官方源并不在国内,网络稳定性难以保证。

解决方法 1:

修改 /etc/yum.repos.d/docker-ce.repo

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

https://download.docker.com/linux/centos/$releasever/$basearch/stable 修改为:

https://mirrors.cloud.tencent.com/docker-ce/linux/centos/$releasever/$basearch/stable

修改结果:

保存。

解决方法 2:

执行命令替换为腾讯源:

sed -i 's/download.docker.com/mirrors.cloud.tencent.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

执行命令进行安装:

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

即可享受高速下载安装 Docker CE。

Docker

由于Docker的官方默认源在海外,导致了腾讯云国内CVM(或轻量)使用Docker默认源拉取镜像速度不理想,甚至直接失败等问题,造成了不小的困扰。

解决方式很简单,我们可以使用腾讯云提供的docker镜像源加速:

https://mirror.ccs.tencentyun.com

一、适用于基于 Ubuntu 操作系统的实例:

1、执行以下命令,打开 /etc/default/docker 配置文件

vim /etc/default/docker

2、按 i 切换至编辑模式,添加以下内容,并保存

DOCKER_OPTS="--registry-mirror=https://mirror.ccs.tencentyun.com"

二、适用于基于 CentOS 操作系统的实例:

1、执行以下命令,打开 /etc/docker/daemon.json 配置文件

vim /etc/docker/daemon.json

2、按 i 切换至编辑模式,添加以下内容,并保存

{
	"registry-mirrors": [
		"https://mirror.ccs.tencentyun.com"
	]
}

解决 CentOS 8 安装 Docker 报错:package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3

需要安装新版containerd.io

yum install https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.3.7-3.1.el8.x86_64.rpm

系统要求:

要安装Docker CE,仅支持以下Ubuntu 64位版本:

  • Cosmic 18.10
  • Bionic 18.04 (LTS)
  • Xenial 16.04 (LTS)

Docker CE 支持 x86_64,amd64, armhf, arm64, s390x (IBM Z), and ppc64le (IBM Power) 架构.

安装 Docker CE

1、卸载旧版 Docker

老版本的 Docker 被称为 dockerdocker.io 或 docker-engine 。如果安装了,需要先卸载它们以及相关的依赖项。

$ sudo apt-get remove docker docker-engine docker.io containerd runc

保留 /var/lib/docker/内容。

2、安装 Docker CE

(1)更新 apt 包索引:

$ sudo apt-get update

(2)安装 repository 和相关依赖:

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

(3)添加 Docker 官方 GPG key:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

通过搜索指纹的最后8个字符,确认含有指纹9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88的密钥。

$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

(4)添加 repository

根据不同架构选择需要添加的 repository

# x86_64 / amd64
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

#armhf
$ sudo add-apt-repository "deb [arch=armhf] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

#arm64
$ sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

#ppc64le (IBM Power)
$ sudo add-apt-repository "deb [arch=ppc64el] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

#s390x (IBM Z)
$ sudo add-apt-repository "deb [arch=s390x] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

(5)更新 apt 包索引:

$ sudo apt-get update

(6)安装最新版 Docker CE 和 containerd

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

通过运行 hello-world 镜像验证是否正确安装了Docker CE:

$ sudo docker run hello-world

官方英文安装文档:https://docs.docker.com/install/linux/docker-ce/ubuntu/

Docker

Docker是一个开放源代码软件项目,让应用程序部署在软件货柜下的工作可以自动化进行,借此在Linux操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。

1、卸载旧版 Docker

老版本的 Docker 被称为 dockerdocker-engine 。如果安装了,需要先卸载它们以及相关的依赖项。

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

2、添加 Docker CE 源

wget https://download.docker.com/linux/centos/docker-ce.repo
sudo mv docker-ce.repo /etc/yum.repos.d/docker-ce.repo

3、安装 Docker CE 和 Containered 最新版

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

4、启动 Docker CE 服务

#启动 docker
sudo systemctl start docker
#设置 docker 自启动
sudo systemctl enable docker

查看 Docker CE 版本

docker -v

Docker version 18.09.6, build 481bc77156

官方英文安装: https://docs.docker.com/install/linux/docker-ce/centos/