docker 安装、升级、修改数据目录的操作方法

 更新时间:2024年08月20日 10:53:57   作者:兰嘉轩  
这篇文章主要介绍了docker 安装、升级、修改数据目录的操作方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

1、查看系统要求

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看CentOS的内核版本。

uname -a

2、删除旧版本

yum remove docker  docker-common docker-selinux docker-engine

3、安装需要的软件包

yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

4、设置Docker yum源

# 使用官方源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 使用阿里源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

5、查看所有仓库中所有docker版本

可以查看所有仓库中所有docker版本,并选择特定的版本安装。

yum list docker-ce --showduplicates | sort -r

6、安装docker

sh

sudo yum install docker-ce

由于repo中默认只开启stable仓库,故这里安装的是最新稳18.03.0.ce-1.el7.centos。

如果要安装特定版本:

sudo yum install docker-ce-18.06.1.ce

7、启动

设置为开机启动

systemctl enable docker

启动

systemctl start docker

查看启动状态

systemctl status docker

如果出现异常

$ systemctl start docker
A dependency job for docker.service failed. See 'journalctl -xe' for details.

查看报错信息

Mar 03 11:19:47 master1 systemd[1]: Starting containerd container runtime...
-- Subject: Unit containerd.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit containerd.service has begun starting up.
Mar 03 11:19:47 master1 systemd[104332]: Failed at step LIMITS spawning /sbin/modprobe: Operation not permitted
-- Subject: Process /sbin/modprobe could not be executed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- The process /sbin/modprobe could not be executed and failed.
-- 
-- The error number returned by this process is 1.
Mar 03 11:19:47 master1 systemd[104335]: Failed at step LIMITS spawning /usr/bin/containerd: Operation not permitted
-- Subject: Process /usr/bin/containerd could not be executed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- The process /usr/bin/containerd could not be executed and failed.

解决方案:
查看open files的值,修改/usr/lib/systemd/system/docker.service和/usr/lib/systemd/system/containerd.service(如下图),启动即可

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 23056
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 654350
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 23056
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
$ vim /usr/lib/systemd/system/docker.service
...
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=654349 # 注意这里
LimitNPROC=23057
LimitCORE=infinity
# Comment TasksMax if your systemd version does not supports it.
...
$ vim /usr/lib/systemd/system/containerd.service
...
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=654349 # 注意这里
LimitNPROC=23057
LimitCORE=infinity
# Comment TasksMax if your systemd version does not support it.
...

查看版本

docker version

8、修改数据目录

方式一

# 将下面的json拷贝纸docker启动目录
$ vim /etc/docker/daemon.json
{
	"data-root": "/data/docker"
}

方式二

查看docker当前信息

$ docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Docker Buildx (Docker Inc., v0.8.2-docker)
  scan: Docker Scan (Docker Inc., v0.17.0)
Server:
 Containers: 40
  Running: 15
  Paused: 0
  Stopped: 25
 Images: 91
 Server Version: 20.10.17
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc version: v1.1.2-0-ga916309f
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-1160.71.1.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 16
 Total Memory: 15.5GiB
 Name: master1
 ID: 3WQC:QCTB:I5D4:2ZWL:VBSH:6GWQ:4W2G:BTK2:XSEY:PDXG:BQAI:ZB6D
 Docker Root Dir: /data/docker   # 这里是数据目录的位置,我因为已经更改过,原位置为/var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://x6u7jv2l.mirror.aliyuncs.com/
 Live Restore Enabled: false

9、停止docker服务

$ systemctl stop docker

10、修改docker服务启动文件

vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph=/data/docker

11、复制原有数据,若无数据,可跳过此步骤

$ cp -rf /var/lib/docker/* /data/docker/

12、重新加载配置文件并启动

$  systemctl daemon-reload
$ systemctl start docker

最后执行步骤8,查看是否已启动

到此这篇关于docker 安装、升级、修改数据目录的操作方法的文章就介绍到这了,更多相关docker 修改数据目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker手动构建JDK镜像的实现示例

    Docker手动构建JDK镜像的实现示例

    本文主要介绍了 Docker手动构建JDK镜像的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • Docker-client for python详解及简单示例

    Docker-client for python详解及简单示例

    这篇文章主要介绍了Docker-client for python详解及简单示例的相关资料,需要的朋友可以参考下
    2017-04-04
  • Docker启动常用容器命令及配置详解

    Docker启动常用容器命令及配置详解

    本文主要介绍了Docker启动常用容器命令及配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Docker容器连接相互通信的实现

    Docker容器连接相互通信的实现

    这篇文章主要介绍了Docker容器连接相互通信的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Armbian5.9.0安装docker及部署可视化portainer的详细教程

    Armbian5.9.0安装docker及部署可视化portainer的详细教程

    这篇文章主要介绍了Armbian5.9.0安装docker及部署可视化portainer的详细教程,通过 ssh 进去 Armbian 系统后,输入相应代码,按提示输入y,等待安装完成即可,需要的朋友可以参考下
    2022-05-05
  • docker如何安装mysql

    docker如何安装mysql

    这篇文章主要介绍了docker如何安装mysql,总结了安装心得,帮助大家更好的使用docker镜像,感兴趣的朋友可以了解下
    2020-10-10
  • docker容器间进行数据共享的三种实现方式

    docker容器间进行数据共享的三种实现方式

    本文主要介绍了docker容器间进行数据共享的三种实现方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 详解Docker创建Mysql容器并通过命令行连接到容器

    详解Docker创建Mysql容器并通过命令行连接到容器

    本篇文章主要介绍了Docker创建Mysql容器并通过命令行连接到容器,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • docker如何查询镜像版本信息

    docker如何查询镜像版本信息

    这篇文章主要介绍了docker如何查询镜像版本信息问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • docker mysql关于配置文件、连接客户端、/docker-entrypoint-initdb.d/目录的使用

    docker mysql关于配置文件、连接客户端、/docker-entrypoint-initdb.d/目录的使用

    这篇文章主要介绍了docker mysql关于配置文件、连接客户端、/docker-entrypoint-initdb.d/目录的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05

最新评论