Docker服务迁移

921次阅读
没有评论

背景

近期之前活动购买的百度智能云到期了,续费太贵,所以重新参加了华为云的活动。升级到了 2C8G5M 但是单核 2.2G 比之前百度智能云的 2C4G5M,单核 2.4G 略低,但是 3 年 1360 还要什么轮子。上车。

备份数据

  • nginx 配置
  • docker-compse 配置 为了方便管理, 单个应用加一个文件夹, 如 docker-nextclud/docker-compose.yml
  • docker 数据备份 默认 /var/lib/docker/volumes

系统部署 - 服务安装

docker 服务部署

首先确认没有部署 docker 相关服务,确认无残留
然后设置 docker 仓库

sudo yum install -y yum-utils yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 docker:
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
启动 docker
systemctl start docker
设置 docker 开机启动
systemctl enable docker

nginx 服务部署

yum install nginx
systemctl start  nginx
systemctl enable nginx

docker-compse 服务部署

命令:

curl -L download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

也可以直接访问 版本列表 下载适合的版本

下载之后上传,解压、更改目录、设置权限

cp -p  docker-compose-linux-x86_64  /usr/local/bin
chmod +x /usr/local/bin/docker-compose

数据、配置文件替换

  • nginx 配置文件替换
  • docker volumes 对应容器的存储卷复制到默认目录。
  • docker-compse 文件复制,

启动服务

进入应用的 docker-compose 目录
docker-compose up -d

  • 备注:

注意事项

docker 持久化目录更改

因此我一直都是使用默认目录,而 volumes 使用的 named volumes。
默认是会在 docker 存储目录下 项目名_应用名_volume(项目名默认是 yml 所在文件夹名称)

如:docker-nextclud 目录下 yml 配置为

version: '3.3'
services:
  db:
    image: mysql:8.0
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=xxx
      - MYSQL_PASSWORD=xxx
      - MYSQL_DATABASE=xxx
      - MYSQL_USER=xxx
  nextcloud:
    image: nextcloud:25.0.2
    ports:
      - xxx:xxx
    environment:
      - MYSQL_ROOT_PASSWORD=xxx
      - MYSQL_PASSWORD=xxx
      - MYSQL_DATABASE=xxx
      - MYSQL_USER=xxx
      - MYSQL_HOST=db
    volumes:
      - nextcloud:/var/www/html
    restart: always
volumes:
  nextcloud:
  db:

正常会在 /var/lib/docker/volumes 生成 docker-nextcloud_nextcloud\docker-nextcloud_db 两个持久化目录。

但是迁移前 docker 版本是 Docker version 19.03.14, build 5eb3275d40, 之前发现目录为 dockernextcloud_nextcloud\dockernextcloud_db 可能是 bug 导致 - 符号没识别。

本次迁移后安装的 docker 版本是 Docker version 20.10.21, build baeda1f
又生成了新的正常目录。

所以将新生成的目录 docker-nextcloud_nextcloud\docker-nextcloud_db 删除,然后更改 dockernextcloud_nextcloud\dockernextcloud_db 为 docker-nextcloud_nextcloud\docker-nextcloud_db。重新启动就可以了。

nextcloud 跨版本升级的问题

查看这个链接:nextcloud 跨版本升级问题


IT 内容具有时效性,未避免更新后未同步,请点击查看最新内容:Docker 服务迁移
文章首发于:http://nebofeng.com/2022/12/17/docker%e6%9c%8d%e5%8a%a1%e8%bf%81%e7%a7%bb/

正文完
欢迎关注个人公众号(目前内容还比较少)
post-qrcode
 
HTML文本

本文链接:

nebofeng
版权声明:本站原创文章,由 nebofeng 2022-12-17发表,共计1981字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码