# 181. 商品详情页动态渲染系统:在 CentOS 6 安装和部署 Docker

TIP

注意,docker 需要在 centOS 7 中安装,这里安装 CentOS-7-x86_64-Minimal-1708.iso , 然后在上面安装 docker

部分配置可以参考:之前的 centos 安装

# centOS 7 安装

  • 使用版本:CentOS-7-x86_64-Minimal-1708.iso,
  • 账户/密码 root/hadoop123

# 配置网络

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

# 先让它动态分配一个ip地址
ONBOOT=yes

# 重启服务
service network restart

# 查看分配的地址
ip addr

# 再设置静态 ip 地址
BOOTPROTO=static
IPADDR=192.168.99.20
NETMASK=255.255.255.0
GATEWAY=192.168.99.1

# 重启网络服务
service network restart

# 查看是否设置成功
ip addr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

执行以下命令报错,是缺少了 dns 配置

[root@localhost ~]# ping www.baidu.com
ping: www.baidu.com: Name or service not known
1
2

配置 dns

# 检查 NetManager 的状态:
systemctl status NetworkManager.service
# 检查 NetManager 管理的网络接口:
nmcli dev status
# 检查 NetManager 管理的网络连接:
nmcli connection show
# 设置 dns:
nmcli con mod enp0s3 ipv4.dns "114.114.114.114 8.8.8.8"
# 让 dns 配置生效:
nmcli con up enp0s3
1
2
3
4
5
6
7
8
9
10

# 关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
1
2

# 安装 java 8

cd /usr/local
# 安装上传下载工具
yum install lrzsz
rz 选择 jdk-8u202-linux-i586.rpm
rpm -ivh jdk-8u202-linux-i586.rpm
# 卸载可以使用 rpm -e jdk1.8-2000:1.8.0_202-fcs.i586

# 安装过程中就出现了以下类似的错误
# 运行 java -version 出现以下错误
-bash: /usr/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

解决方案如下:

# 安装 glibc.i686
yum install glibc.i686

# 卸载安装不完整的 java
rpm -e jdk1.8-2000:1.8.0_202-fcs.i586
# 重新安装
rpm -ivh jdk-8u202-linux-i586.rpm

通过此方式安装之后,不需要配置环境变量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 初步安装和启动 docker

如果这里的安装步骤让你感到不解,那么可以参考此教程 (opens new window) ,里面参考了官网的安装教程

yum update -y

yum install -y yum-utils

# 添加 docker-ce 仓库地址
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum -y install docker-ce

systemctl start docker
1
2
3
4
5
6
7
8
9
10
11

# 设置镜像

vi /etc/docker/daemon.json

# 设置成 阿里云的

{
  "registry-mirrors": ["https://aj2rgad5.mirror.aliyuncs.com"]
}
1
2
3
4
5
6
7

# 开放管理端口映射

vi /lib/systemd/system/docker.service

# 将第 11 行的 ExecStart=/usr/bin/dockerd,替换为:
# 2375 是管理端口,7654 是备用端口
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock -H tcp://0.0.0.0:7654

# 在 ~/.bashrc 中写入 docker 管理端口
vi ~/.bashrc

export DOCKER_HOST=tcp://0.0.0.0:2375

source ~/.bashrc

1
2
3
4
5
6
7
8
9
10
11
12
13

# 测试 docker 是否正常安装和运行

# 记得先停止 docker 再运行,因为之前配置了端口什么的
systemctl stop docker
systemctl start docker
# 运行 docker 的一个 hello-world 镜像
docker run hello-world
...
# 如果现实有以下文字就说明可以了
Hello from Docker!
This message shows that your installation appears to be working correctly.
1
2
3
4
5
6
7
8
9

# 错误解决

# yum-config-manager --add-repo 异常

执行命令后出现以下异常,原因是国内无法访问外国的 docker 镜像,这里需要使用阿里云的来安装

[root@eshop-detail01 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
https://download.docker.com/linux/centos/docker-ce.repo: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 416 Requested Range Not Satisfiable"
Trying other mirror.
Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 416 Requested Range Not Satisfiable"

1
2
3
4
5
6
7
8

解决方案:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# yum -y install docker-ce 异常

报错的地址文件的确 404 了,这个就是在 centos 6 下安装 docker-ce 的缘故,使用 centos 7 安装就行了

[root@eshop-detail01 ~]# yum install -y docker
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: ap.stykers.moe
https://download.docker.com/linux/centos/7/i386/stable/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.
To address this issue please refer to the below wiki article

https://wiki.centos.org/yum-errors

If above article doesn't help to resolve this issue please use https://bugs.centos.org/.

Error: Cannot retrieve repository metadata (repomd.xml) for repository: docker-ce-stable. Please verify its path and try again
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16