Docker容器迁移新服务器

Docker容器迁移

  • 容器保存为镜像
  • 容器打包
  • 备份容器数据
  • 新环境安装docker环境
  • 新环境加载镜像
  • 还原应用数据
  • 启动容器
  • 修改容器配置

容器保存为镜像

使用docker commit 命令。将运行的容器提交为镜像
其中
-a指定作者信息
-m 添加注释信息

docker commit -a "wuzw" -m "QP" ff90ca6713a3  nextcloud:v1
docker commit -a "wuzw" -m "QP" f7bc19b43fe5     mysql:nextcloud
docker commit -a "wuzw" -m "QP"  785209b3cd31 elasticsearch:nextcloud
docker commit -a "wuzw" -m "QP"  6473e4ef0e22 onlyoffice:nextcloud

容器打包

使用docker save 命令。将上一步生成好的镜像导出为tar包,用于导入新的环境运行。

docker save nextcloud:Teld > nextcloud_save.tar
docker save mysql:nextcloud > mysql_save.tar
docker save elasticsearch:nextcloud > elasticsearch_save.tar
docker save onlyoffice:nextcloud > onlyoffice_save.tar

备份容器数据

通过docker inspect 命令。查看容器运行时的参数
包括端口、目录映射、参数调解等
将容器数据打包,然后放入新服务器同样的位置

新环境安装docker环境

docker版本安装相同版本的,原有docker环境版本可以通过docker version 命令来查看。

# 添加yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
# 更新数据源
yum update
 
# 列出数据源
yum list docker-ce --showduplicates|sort -r
 
yum list docker-ce-cli --showduplicates|sort -r
 
 
yum install -y docker-ce-20.10.2 docker-ce-cli-20.10.2 containerd.io
 
systemctl start docker && systemctl enable docker

新环境加载镜像

将导出的tar包放入新的服务器进行加载。


docker load -i nextcloud_save.tar
docker load -i mysql_save.tar
docker load -i elasticsearch_save.tar
docker load -i onlyoffice_save.tar

还原应用数据

将打包的数据还原到相同的目录。
可以用cp -a 的参数保持原有的属性,防止出现权限问题。

启动容器

docker run -d --restart=always -p 888:80 -v /mnt/nextcloud:/var/www/html --link mysql:nextcloud --name nextcloud  nextcloud:v1
 
 
docker run -i -t -d -p 1888:80 --restart=always --name onlyoffice  --link nextcloud:v1 -v /root/onlyoffice/log:/var/log/onlyoffice   -v /root/onlyoffice/data:/var/www/onlyoffice/Da
ta   -v /root/onlyoffice/lib:/var/lib/onlyoffice  -v /root/onlyoffice/db:/var/lib/postgresql  onlyoffice:nextcloud
 
 
docker run -d  -p 3333:3306 -v /usr/mydata/mysql/conf:/etc/mysql/conf.d -v /usr/mydata/mysql/log:/var/log/mysql -v /usr/mydata/mysql/data:/var/lib/mysql --name my
sql mysql:nextcloud
 
 
docker run -d -p 9999:9200 -p 8888:9300 -e ES_JAVA_POTS="-Xms128m -Xmx128m" -e "discovery.type=single-node" --name elastic_search elasticsearch:nextcloud

修改容器配置

如果容器里边有配置过IP地址等信息,需要修改这些信息进行重启。

你可能感兴趣的:(Docker,NextCloud,docker,服务器,容器)