centos6.5 离线安装docker1.7.1(带离线安装包下载)

内容目录

参考文章

https://blog.csdn.net/weixin_40308031/article/details/123049636

离线安装包下载地址

链接: https://pan.baidu.com/s/1_KXJfsIvatA3NH_IlTCzng?pwd=hkj8 提取码: hkj8

文件列表

 

├── device-mapper-libs
│   ├── device-mapper-1.02.117-12.el6.x86_64.rpm
│   ├── device-mapper-event-1.02.117-12.el6.x86_64.rpm
│   ├── device-mapper-event-libs-1.02.117-12.el6.x86_64.rpm
│   ├── device-mapper-libs-1.02.117-12.el6.x86_64.rpm
│   ├── lvm2-2.02.143-12.el6.x86_64.rpm
│   └── lvm2-libs-2.02.143-12.el6.x86_64.rpm
├── docker-io-1.7.1-2.el6.x86_64.rpm
├── libcgroup-0.40.rc1-23.el6.x86_64.rpm
├── lua-alt-getopt-0.7.0-1.el6.noarch.rpm
├── lua-filesystem-1.4.2-1.el6.x86_64.rpm
├── lua-lxc-1.0.10-2.el6.x86_64.rpm
├── lxc-1.0.10-2.el6.x86_64.rpm
└── lxc-libs-1.0.10-2.el6.x86_64.rpm

如果服务器有旧版本device-mapper-libs请卸载,无则忽略,不然后续无法安装上面的device-mapper-libs-1.02.117-12.el6.x86_64.rpm

命令查询

rpm -qa|grep device-mapper-libs

比如我的是79版本,如果你是117版本或者更高略过

yum remove device-mapper-libs-1.02.79-8.el6.x86_64

不卸载的话 后续docker  -d会提示

docker: relocationerror: docker: symbol dm_task_get_info_with_deferred_remove, version Base notdefined in file libdevmapper.so.1.02 with link time reference

 

然后开始正式安装

将压缩包解压 docker 目录上传至任意目录,我个人传到了/usr/local/src/

然后执行

cd /usr/local/src/docker
rpm -ivh lxc-libs-1.0.10-2.el6.x86_64.rpm
rpm -ivh lua-alt-getopt-0.7.0-1.el6.noarch.rpm
rpm -ivh lua-filesystem-1.4.2-1.el6.x86_64.rpm
rpm -ivh lua-lxc-1.0.10-2.el6.x86_64.rpm    
rpm -ivh lxc-1.0.10-2.el6.x86_64.rpm
rpm -ivh docker-io-1.7.1-2.el6.x86_64.rpm

然后继续安装

cd /usr/local/src/docker/device-mapper-libs/
rpm -ivh device-mapper-1.02.117-12.el6.x86_64.rpm
rpm -ivh  device-mapper-event-1.02.117-12.el6.x86_64.rpm
rpm -ivh device-mapper-event-libs-1.02.117-12.el6.x86_64.rpm
rpm -ivh device-mapper-libs-1.02.117-12.el6.x86_64.rpm
rpm -ivh lvm2-2.02.143-12.el6.x86_64.rpm
rpm -ivh lvm2-libs-2.02.143-12.el6.x86_64.rpm

然后docker就离线安装完了,如果是国内服务器,拉镜像太慢,修改镜像源

我是改为https://xxxxx.mirror.aliyuncs.com

具体地址,你可以上自己的阿里云账号获取

参考我另一篇centos7 改镜像源

centos7 docker新手踩坑配置国内镜像源

或者使用本站镜像源: https://d.ku0.cc

以下为编辑内容

vi  /etc/sysconfig/docker

# /etc/sysconfig/docker
#
# Other arguments to pass to the docker daemon process
# These will be parsed by the sysv initscript and appended
# to the arguments list passed to docker -d

other_args="registry-mirrors”:“https://xxxxx.mirror.aliyuncs.com"
DOCKER_CERT_PATH=/etc/docker

# Resolves: rhbz#1176302 (docker issue #407)
DOCKER_NOWARN_KERNEL_VERSION=1

# Location used for temporary files, such as those created by
# # docker load and build operations. Default is /var/lib/docker/tmp
# # Can be overriden by setting the following environment variable.
# # DOCKER_TMPDIR=/var/tmp

启动docker

nohup docker -d >/dev/null 2>&1 &

 

后面发现修改/etc/sysconfig/docker无效,拉取镜像报错

Error: Status 410 trying to pull repository bitnami/mysql: "<html>\r\n<head><title>410 Gone</title></head>\r\n<body>\r\n<center><h1>410 Gone</h1></center>\r\n<hr><center>openresty</center>\r\n</body>\r\n</html>\r\n"

参数化启动指定镜像源数据目录

nohup docker -d --registry-mirror=https://xxxxx.mirror.aliyuncs.com -g /data/docker >/dev/null 2>&1 &

大功告成 留文备忘

 

可能出现的问题

[root@eva_admin ~]# docker -d --registry-mirror=https://d.ku0.cc -g /qzdata1/docker/
WARN[0000] You are running linux kernel version 2.6.32-431.11.2.el6.toa.2.x86_64, which might be unstable running docker. Please upgrade your kernel to 3.10.0. 
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) 
INFO[0000] [graphdriver] using prior storage driver "devicemapper" 
WARN[0000] Running modprobe bridge nf_nat failed with message: , error: exit status 1 
WARN[0000] Your kernel does not support cgroup memory limit: mountpoint for memory not found 
WARN[0000] mountpoint for cpu not found                 
FATA[0000] Error mounting devices cgroup: mountpoint for devices not found 

你的系统缺少 /sys/fs/cgroup 目录,说明 cgroup 可能没有启用或者相关的 cgroup 文件系统未挂载。

在 CentOS 6 中,cgroup 的默认挂载路径通常是 /cgroup,而不是 /sys/fs/cgroup。你可以使用以下方法来解决问题。


方法 1:手动挂载 cgroup

  1. 检查是否已经挂载 cgroup

    mount | grep cgroup

    如果没有输出,说明 cgroup 未挂载。

  2. 创建 cgroup 目录

    mkdir -p /cgroup
  3. 挂载 cgroup

    mount -t cgroup none /cgroup
  4. 检查是否成功挂载

    mount | grep cgroup

    你应该看到类似:

    cgroup on /cgroup type cgroup (rw)

方法 2:修改 /etc/fstabcgroup 开机自动挂载

如果 cgroup 手动挂载成功,可以让它开机自动挂载:

echo "none  /cgroup  cgroup  defaults  0  0" >> /etc/fstab

然后重启:

reboot

方法 3:重新启动 cgconfig(如果已安装 libcgroup

如果 cgroup 仍然无法挂载,你可以尝试启用 cgconfig 服务:

service cgconfig start
chkconfig cgconfig on

如果 cgconfig 服务不存在,尝试安装:

yum install -y libcgroup

然后重试:

service cgconfig start

方法 4:检查内核是否支持 cgroup

  1. 检查内核是否启用了 cgroup

    grep CGROUP /boot/config-$(uname -r)

    如果输出为空,说明你的内核可能不支持 cgroup,需要升级内核(建议至少 3.10 以上)。

  2. 尝试手动启用 cgroup

    mount -t tmpfs cgroup_root /sys/fs/cgroup
    mkdir -p /sys/fs/cgroup/memory
    mount -t cgroup -o memory cgroup /sys/fs/cgroup/memory

推荐方案

如果你的 cgroup 目录确实不存在,最简单的解决方法是 手动挂载 cgroup(方法 1)。但从你的系统环境来看,你的 CentOS 6 版本太旧,建议:

  • 升级到 CentOS 7 或更高版本,因为 CentOS 6 的 Docker 兼容性很差。
  • 如果必须用 CentOS 6,至少 升级内核到 3.10+,并手动启用 cgroup

如果你无法升级,建议尝试 Docker 1.7 或 1.12 旧版本,但这些版本已经停止维护,并且可能存在安全风险。

1 comment on centos6.5 离线安装docker1.7.1(带离线安装包下载)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注