CentOS 7 系统下Docker的初始化

在CentOS系统下搭建Docker环境,建议选择7.x的版本。若要想在6.x上运行新版的Docker,需要升级内核、依赖库等繁琐的操作,且稳定性差,不太建议把时间浪费在这上面(喜欢折腾的童鞋可以忽略)。本文现在来总结下Docker环境搭建好之后的一些基础优化。

设置Docker国内镜像源

国内访问Docker Hub速度缓慢,需要手动修改配置国内加速源。

方法一:使用DaoCloud提供的DaoCloud 加速器(推荐)

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://加速地址

使用加速器首先需要免费注册DaoCloud账号,加速地址 替换为在加速器页面获取的专属地址。

方法二:手动配置registry-mirror

(Docker 版本 > 1.12)

创建或修改 /etc/docker/daemon.json 文件,修改为如下形式:

{
    "registry-mirrors": ["国内源地址"],
}

国内源地址替换为真实的地址,推荐几个速度较佳的国内镜像地址:

https://registry.docker-cn.com    Docker官方中国区
http://hub-mirror.c.163.com    网易源
https://docker.mirrors.ustc.edu.cn    中科大源

两种方法在配置完成之后,均需要重启docker服务使其生效:

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

使用非root用户(免sudo)运行Docker

线上环境出于安全性能因素考虑,通常需要逸普通用户来运行docker服务。

  • 创建docker用户和组
sudo groupadd docker
  • 将普通用户加入docker组
sudo gpasswd -a ${USER} docker
  • 重启docker服务
sudo systemctl restart docker
  • 普通用户执行docker命令,可能会遇到如下报错:

dial unix /var/run/docker.sock: permission denied.Are you trying to connect to a TLS-enabled

执行以下命令解决:

sudo chmod 666 /var/run/docker.sock

现在就可以在普通用户模式下,免sudo提权直接执行docker命令了。

​​‌‌​​​‌‌​‌​​‌‌‍​‌​‌‌‌​​‌‌‌‌​‌​‍​‌​​‌​​​‌​​​‌‌​‍​‌​‌‌​​​‌‌​​​​​‍​​‌​‌‌‌‌‌‌‌‌​​​‍​‌‌​​‌‌‌​‌‌​​‌‌‌‍​‌‌​​​‌‌‌​​​‌​‌‍​​‌‌‌‌‌‌‌‌​​‌‌‍‌​‌‌‌‌​​‍‌​​‌‌​‌​‍‌​​‌​​​‌‍‌​​​‌​‌‌‍‌​‌‌​​​​‍‌​‌​‌‌​​‍‌‌​​‌​​​‍​​​​​‌‌​​​​​‌​​‍​​​​​​‌​​‌​​​​​‍​‌‌​​​‌‌‌‌‌​‌​​‍‌​‌‌‌​‌‌‍‌​​‌​​​​‍‌​​‌‌‌​​‍‌​​‌​‌​​‍‌​​‌‌​‌​‍‌​​​‌‌​‌‍​​​‌​​‌​‌‌‌‌​‌‌‍​‌​‌​​​​​​​​‌​‌‍​​​​‌‌‌‌​‌‌‌‌‌‌‍​‌‌​​​​‌‌‌​​‌‌‌‍​‌​‌‌​​‌‌‌​‌​​‌‍​​‌‌‌‌‌‌‌‌​​‌​‍​​​​​​​​‌‌‌‌​​‌‌‍​​​‌​‌​‌‌​​‌‌‌​‍‌​​‌‌‌‌​‍‌​​‌‌​‌‌‍‌​​‌​​‌​‍‌​​‌​‌‌​‍‌​​‌​​​‌‍​‌‌​​​‌​‌‌‌​​​‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​​‌‌‌​‍‌‌​​​‌‌‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌‌‍‌‌​​‌​‌‌‍‌‌​‌​​‌​‍‌‌​​‌‌​‌‍‌‌​​‌​‌‌‍​‌​‌‌​‌‌‌‌​​‌​​‍​‌‌​​​​‌​‌​​​‌‌‍​​​​​​​​‌‌‌‌​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌​​​‌‌​​‌‌‌‌‍​‌​‌​​​‌​‌‌‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍‌‌​​​‌​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍‌​​‌​‌‌​‍‌​​‌​‌​​‍‌​​‌​‌‌​‍‌​​​‌​​​‍‌​​‌​‌‌​‍‌‌​‌​​​‌‍‌​​‌​​‌​‍‌​​‌‌​‌​‍‌​‌​​​‌‌‍‌​​‌‌‌‌​‍‌​​​‌‌​‌‍‌​​‌‌‌​​‍‌​​‌​‌‌‌‍‌​​‌​‌‌​‍‌​​​‌​​‌‍‌​​‌‌​‌​‍‌​​​‌‌​​‍‌​‌​​​‌‌‍‌‌​​‌​‌​‍‌‌​​‌‌‌‌‍‌‌​‌​​​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​‌​​‌​‍‌​​‌​​‌‌

验证:

docker run hello-world

The End.