lizhibing
作者lizhibing·2022-08-14 10:33
系统运维工程师·建亿通(北京)数据处理信息有限公司

docker环境下mantis容器迁移

字数 2339阅读 1876评论 0赞 3

sever: 192.168.1.101上的mantis迁移到 server: 192.168.1.103

一、192.168.1.101上备份、导出镜像

docker ps |grep mantis //查看mantis容器

c6bc3a351a84 mantis:1.0.1 "/usr/sbin/init" 11 months ago Up 2 days 22/tcp,
0.0.0.0:8888->80/tcp, :::8888->80/tcp, 0.0.0.0:23306->3306/tcp, :::23306->3306/tcp

docker images |grep mantis //查看mantis镜像

mantis 1.0.1 d147a1f8f3aa 11 months ago 7.6GB

dokcer commit mantis mantis:1.0.3 //退出容器,并打包成新的镜像

dokcer images |grep mantis //查看镜像

mantis 1.0.3 34ce7f98923f 25 hours ago 19.5GB

docker save -o mantis103.tar mantis:1.0.3 //导出新的镜像为文件

docker inspect c6bc3a351a84 |grep -C20 Mount //查看mantis挂载的卷

docker inspect c6bc3a351a84 | grep Mounts -A 50 //查看mounts关键字的后50行"Mounts": [

{

"Type": "bind",
"Source": "/opt/mysqldata",
"Destination": "/home/mysql",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
**"Source": " /sys/fs/cgroup",
"Destination": " /sys/fs/cgroup",**
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],

查看容器是否存在目录挂载

# docker inspect --format='{{.Mounts}}' 容器名
例如:

docker inspect --format='{{.Mounts}}' minio

[{bind /minio/data /data true rprivate} {bind /minio/config /root/.minio true rprivate}]

二、scp复制/opt/mysqldata到192.1681.103

mkdir -p /home/mysqldata

ln -s /opt/mysqldata /home/mysqldata

scp -r /opt/mysqldata/ root@192.168.1.103:/home/mysqldata/

三、192.168.1.103导入镜像

docker load -i mantis103.tar //导入镜像

docker images | grep mantis //查看镜像

mantis 1.0.3 34ce7f98923f 24 hours ago 19.5 GB

四、创建并运行容器
docker run --privileged=true -itd -v /opt/mysqldata:/home/mysql --name=mantis -p 8888:80 -p 23306:3306 -v
/sys/fs/cgroup:/sys/fs/cgroup mantis:1.0.3 /usr/sbin/init

参数说明:
为了在容器中使用 systemctl,需要两个条件:
1)需要包含 Volume(卷) /sys/fs/cgroup
如果不包含这个卷,执行 systemctl 会报错:
Couldn't find an alternative telinit implementation to spawn。
2)需要在 run 时加 --privileged,运行在特权模式,容器内的 root 用户不再是普通用户,拥有真正的 root 权限。
如果不加此选项,那么在启动时,挂载卷的时候会报错:
Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted
[!!!!!!] Failed to mount API filesystems, freezing.

其它参数说明:
--hostname,-h:指定容器中的 centos 操作系统主机名
--name:指定容器的名称,用 docker container list --all 显示时,最后一列即为容器名称
--publish,-p:指定网络端口映射
--restart:值为 always 为了使容器随 docker 服务启动时,自动运行

docker ps |grep mantis //查看容器

192bdee3efe9 mantis:1.0.3 "/usr/sbin/init" 8 hours ago Up 8 hours
22/tcp, 0.0.0.0:8888->80/tcp, 0.0.0.0:23306->3306/tcp mantis

**五、访问http://192.168.1.103:8888/mantis/login_page.php**

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

3

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

  • k8s分配cpu、内存资源
    评论 0 · 赞 2
  • docker环境svn迁移
    评论 0 · 赞 2
  • k8s几个常用操作
    评论 0 · 赞 2
  • 把镜像tar包上传harbor仓库
    评论 0 · 赞 2
  • Docker之Calico网络
    评论 0 · 赞 2
  • 相关文章

    相关问题

    相关资料

    X社区推广