dokcer容器Nginx迁移实例
文章目录前言第一种迁移例子:第二种迁移例子:前言有两种方法迁移第一种:将容器快照成新的镜像 ,然后将镜像打包导出,scp到新的设备上,在新的容器中运行打包的镜像即可。第二种:将容器快照成镜像 ,推送到云仓库(Docker Hub、Harbor),在新的设备上进行拉取即可要注意的是:容器打包成镜像,如果容器是映射的有挂在卷,数据不会同步。例如mysql,我们需要进容器中创建一个数据目录,将映射的数据
·
前言
有两种方法迁移
第一种:
将容器快照成新的镜像 ,然后将镜像打包导出,scp到新的设备上,在新的容器中运行打包的镜像即可。
第二种:
将容器快照成镜像 ,推送到云仓库(Docker Hub、Harbor),在新的设备上进行拉取即可
要注意的是:容器打包成镜像,如果容器是映射的有挂在卷,数据不会同步。例如mysql,我们需要进容器中创建一个数据目录,将映射的数据拷贝到容器中,在做快照即可。另外记得记录原容器开启的端口。
第一种迁移例子:
- 查看所有容器
[root@master ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1264f054d215 nginx "/docker-entrypoint.…" 9 days ago Up 19 hours 0.0.0.0:80->80/tcp nginx-web
- 将容器快照成镜像
docker commit -p 【容器名或ID】 【新镜像名:标签】
[root@master ~]# docker commit -p 1264f054d215 nginx-test:v8.8
sha256:5a29a816167dd6a5e847d3891313bb22b2ddee8f658e4546af98c1ea26660b29
[root@master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx-test v8.8 5a29a816167d 6 seconds ago 184MB
nginx latest 6084105296a9 13 days ago 133MB
参数说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
- 将镜像打包
docker save -o 【备份名.tar】 【备份的镜像名或ID】
[root@master ~]# docker save -o ngxin-test-back.tar nginx-test
[root@master ~]# ll -h
-rw------- 1 root root 182M 3月 26 16:28 nginx-test-back.tar
- 将包导入新容器,成为镜像
docker load -i 【备份包名.tar】
[root@master ~]# docker load -i nginx-test-back.tar
14a1ca976738: Loading layer [==================================================>] 72.49MB/72.49MB
2230366c7c6c: Loading layer [==================================================>] 64.81MB/64.81MB
fc621d08b12b: Loading layer [==================================================>] 3.072kB/3.072kB
7278048f2330: Loading layer [==================================================>] 4.096kB/4.096kB
2f2780a1a18d: Loading layer [==================================================>] 3.584kB/3.584kB
6b93c0e56d01: Loading layer [==================================================>] 7.168kB/7.168kB
03ec3d42b210: Loading layer [==================================================>] 52.53MB/52.53MB
Loaded image: nginx-test:v8.8
[root@master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx-test v8.8 5a29a816167d 8 minutes ago 184MB
- 运行容器即可
[root@master ~]# docker run -it -p 80:80 nginx-test:v8.8
第二种迁移例子:
我们采用 Docker Hub作为镜像存储
- 首先需要注册,并创建 一个私人仓库
官网地址: https://hub.docker.com/
注册完毕登陆,然后创建私人仓库
- 登陆刚刚创建好的仓库
- 把打包好的镜像打个标签,并推送
docker tag 【要打包的镜像名字:版本】 dockerhub的用户名/创建的仓库名:版本
[root@master ~]# docker tag nginx-test:v8.8 707767695/new:v8.8
[root@master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx-test v8.8 5a29a816167d 2 hours ago 184MB
707767695/new v8.8 5a29a816167d 2 hours ago 184MB
[root@master ~]# docker push 707767695/new:v8.8
- 进入创建的仓库,查看推送成功
- 在新设备上拉去并运行
[root@racknerd-dfc76f ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username : 707767**
Password:
Login Succeeded
[root@racknerd-dfc76f ~]# docker pull 7077676**/new:v8.8
[root@racknerd-dfc76f ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/7077676**/new v8.8 5a29a816167d 2 hours ago 184 MB
docker run -itd -p 80:80 docker.io/7077676**/new:v8.8
更多推荐
已为社区贡献9条内容
所有评论(0)