写在开头的建议

这里环境局限在在自研的tlinux上,有几个坑提前知会一下,避免回头折腾一番白费力气:

  1. tlinux1.2是几乎不可能安装成功docker的,所以不要尝试了;
  2. tlinux2.2上安装docker可以成功,但是网络功能由于tlinux因为安全考虑去除了NAT模块,所以只能用host的形式来启动docker,具体操作下面有写。

安装docker

参考地址:https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce

环境

  • 系统环境:tlinux 2.2
  • 网络环境:IDC外网
  • 权限需求:root权限

禁止掉yum的HTTPS认证

  1. sudo vi /etc/yum.conf
  2. 最后一行添加:sslverify=false,保存退出

卸载旧版的docker残余

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

安装docker-ce

  1. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  2. sudo yum-config-manager --enable docker-ce-edge
  3. sudo yum-config-manager --enable docker-ce-test
  4. sudo yum install docker-ce

启动不了docker服务

原因:tlinux删除了NAT网络模块,导致没有办法启动docker
有以下几个解决方案:

以host的网络形式启动容器

这种方案弊端很多,隔离性太差,一个简单的例子就是端口占用。
docker run --net=host hello-world

向公司申请安装nat模块

这种方式几乎可以不予考虑,需要邮件抄送GM,并要自己承担安全风险

启动时禁止docker的网络检查

  1. sudo vi /etc/docker/daemon.json
  2. 添加{"iptables": false}
  3. sudo ip link add name docker0 type bridge
  4. sudo ip addr add dev docker0 172.17.0.1/16

如果容器内不需要联网,只是用来跑运算等情况的话,可以在docker启动时屏蔽掉iptable部分的检测。但是要是联网的话,那就实现不了了。

Comments
Write a Comment