docker工作空间迁移

Posted 张侦毅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker工作空间迁移相关的知识,希望对你有一定的参考价值。

文章目录

  本文接上面的Gitlab服务器数据存储文件迁移此处是迁移我们的docker工作空间。

前期准备

  docker的相关指令:

  • 禁用:systemctl disable docker
  • 启用:systemctl enable docker
  • 重新加载:systemctl daemon-reload
  • 启动:systemctl start docker
  • 停止:systemctl stop docker
  • 查看docker的信息:docker info
  • 查看docker的版本:docker version
  • 查看docker的日志:docker logs [容器id]

  文件压缩与解压缩:

  • 压缩指令:tar -cvf [文件名].tar [压缩目录]
  • 解压缩指令:tar -xvf [文件名].tar

  docker的配置文件位置:

  • 配置文件位置1:/usr/lib/systemd/system/docker.service
  • 配置文件位置2:/etc/docker/daemon.json
  • docker默认工作空间:/var/lib/docker/

迁移docker的工作空间

  停掉docker

systemctl stop docker

  创建新的docker工作空间/home/docker/data/

  切换到docker的默认工作空间,备份docker默认工作空间

tar -cvf docker.tar .

  拷贝旧有docker的工作空间到新的工作空间

cp -r /var/lib/docker/* /home/docker/data/

  编辑docker的配置文件,修改工作空间到指定位置。

  由于docker版本的不同,其配置文件的修改也会出现相应的差别,比如说在我的本地虚拟机中,我是通过修改/usr/lib/systemd/system/docker.servicedocker配置文件来完成docker工作空间的指令操作,其修改方式如下:

  在docker19.03.8版本中在ExecStart=/usr/bin/dockerd行添加--graph=/home/docker/data/配置信息。

  但是在公司的服务器中,重复上面的操作则不奏效,此时我们的解决办法是修改/etc/docker/daemon.json配置文件,通过添加"data-root":"/home/docker/data/"配置信息来解决。

  而在docker1.13.1版本中,是通过添加"graph": "/apps/docker/data"来解决。

  如果我们不清楚docker的版本,我们可以使用如下指令进行查看:

docker version

  如果我们想查看docker的工作空间是否生效,我们可以通过下述指令:

docker info

  在完成上述操作后,通过使用如下指令使docker配置生效:

systemctl daemon-reload

  之后我们就通过下面的指令启动docker

systemctl start docker

  有时,当通过上面的指令也无法让docker配置生效时,我们可以使用下面的指令集:

systemctl disable docker
systemctl enable docker
systemctl daemon-reload
systemctl start docker

Permission denied异常

  当我们迁移docker的工作空间后,出现了mysql应用启动不起来的情况,通过下面的指令查看docker日志:

docker logs [容器id]

  此时我们的异常信息中有如下内容:

/usr/local/mysql/bin/mysqld: Can't create/write to file '/tmp/ib0n3frL' (Errcode: 13 - Permission denied)

  这属于Permission denied异常,此时就说明启动的docker应用本身不具有访问某些文件的权限,在这里,是我们的MySQL不具有访问/tmp文件夹的权限。我们可以通过如下指令给该文件夹赋予相应的权限:

chmod 777 /tmp

  而在我们服务器上,虽然也出现了上述的异常,但是解决方式通过上面的途径是无法解决的,此时我们通过删除本地的MySQL镜像,重新拉取MySQL镜像加以解决。

以上是关于docker工作空间迁移的主要内容,如果未能解决你的问题,请参考以下文章

docker磁盘空间不足之数据迁移解决方案

linux下docker容器存放磁盘空间迁移

软链接迁移 Docker 容器存储位置

Linux 迁移Docker目录/var/lib/docker

Linux 迁移Docker目录/var/lib/docker

Linux 迁移Docker目录/var/lib/docker