参考文章
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 改镜像源
或者使用本站镜像源: 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
-
检查是否已经挂载
cgroup
mount | grep cgroup
如果没有输出,说明
cgroup
未挂载。 -
创建
cgroup
目录mkdir -p /cgroup
-
挂载
cgroup
mount -t cgroup none /cgroup
-
检查是否成功挂载
mount | grep cgroup
你应该看到类似:
cgroup on /cgroup type cgroup (rw)
方法 2:修改 /etc/fstab
让 cgroup
开机自动挂载
如果 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
-
检查内核是否启用了
cgroup
grep CGROUP /boot/config-$(uname -r)
如果输出为空,说明你的内核可能不支持
cgroup
,需要升级内核(建议至少 3.10 以上)。 -
尝试手动启用
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(带离线安装包下载)