Docker从零部署应用06:打包已有容器为镜像文件,跨机器复制容器部署

1、前言

前面我们已经讲过,如何下载镜像,如何创建容器。

不知道你们有没有这样的感受,每次拉去新的镜像。之前安装比如"vim、ll"等命令和资源都会消失,那么如何创建属于自己的镜像呢?

当我们已经有部署好的容器,把容器打包成镜像文件,然后安装到其他机器上,无需重新安装,一键启用,何乐而不为呢?

那么具体该怎么做呢?

2、导出容器

以JDK8容器为例,上篇文章我们已经新建了JDK8容器;

[root@1 docker]# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS           
842e12c3e67b        jdk:1.8              "/bin/bash"              3 hours ago         Up 3 hours    NAMES                                       
jdk-test

myjdk.tar.gz

# jdk
docker commit jdk-test myjdk
docker save -o myjdk.tar.gz myjdk

然后把机器1的tar包通过SSH传输到其他机器2执行:

[root@1 docker]# scp myjdk.tar.gz **.**.**.191:/docker/jdk
root@**.**.**.191's password:
myjdk.tar.gz

导入镜像

[root@2 docker]#docker load -i myjdk.tar.gz

查看镜像

[root@2 jdk]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
myjdk                latest              fef0ed645efb        17 minutes ago      628MB

创建容器

docker stop jdk-test
docker rm jdk-test
docker run -itd --name jdk-test myjdk

进入容器

docker exec -it jdk-test /bin/bash

验证

[root@2 /docker/jdk]# java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

3、上传 Docker Hub公共仓库

上述包传来传去,似乎不是很好,那么我们可以上传我们的私有仓库Docker Hub;

我们需要先注册一个账户

登录

[root@2 jdk]# docker login	

登录成功后,查看镜像

[root@2 jdk]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
myjdk                latest              fef0ed645efb        25 minutes ago      628MB

推送镜像

用户登录后,可以通过 docker push 命令将自己的镜像推送到 Docker Hub。

以下命令中的 username 请替换为你的 Docker 账号用户名。

[root@2]# docker tag myjdk username/myjdk
[root@2]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
myjdk                 latest              fef0ed645efb        14 hours ago        628MB
username/myjdk        latest              fef0ed645efb        14 hours ago        628MB
[root@2]# docker push username/myjdk

使用镜像

[root@2]# docker pull username/myjdk
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值