Docker——给tomcat容器部署项目并且做成新的镜像(容器内外拷贝)(六)

随声附和 提交于 2019-12-07 15:37:15

注:命令中ID有时长有时短,在此做个解释:大多情况无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分

1、给tomcat容器部署项目即拷贝文件到tomcat容器中(向容器内拷贝)

方法一、挂载宿主机目录到容器(弊端:必须在容器启动时执行挂载)

命令:docker run -d -itp 80:8080 -v /zpfile:/mnt c0c /bin/bash (-v即挂载参数, -v 宿主机目录:容器的目录)

[root@localhost ROOT]# docker images
REPOSITORY                          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
hub.c.163.com/wangjiaen/centos6.9   ssh                 5caf8ed79df7        9 weeks ago          370.9 MB
hub.c.163.com/public/tomcat         7.0.28              a3c2d8714b1c        15 months ago        266.9 MB
[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                          NAMES
c3e6b957608e        c0c                 "/bin/sh -c '/etc/in   13 minutes ago      Up 13 minutes       22/tcp, 0.0.0.0:80->8080/tcp   adoring_banach      
[root@localhost /]#
[root@localhost /]# docker run -d -itp 80:8080 -v /zpfile:/mnt c0c bash
c3e6b957608eef39db29361cebff3670283f2fe5a7b89ab0eee1d0ce8842fe5e
[root@localhost /]#
[root@localhost zpfile]# ls
docker
[root@localhost zpfile]# docker exec -it c3e bash
root@c3e6b957608e:/# cd /mnt/
root@c3e6b957608e:/mnt# ls
docker
然后把要部署的项目放到挂载目录在docker容器中就可以直接操作了,即可以部署到tomcat服务中

方法二、在宿主机找到容器的位置,直接将文件拷贝到相应的位置即可

命令:docker inspect -f  '{{.Id}}' c3e  (c3e即容器ID前三字母)

[root@localhost zpfile]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                          NAMES
c3e6b957608e        c0c                 "/bin/sh -c '/etc/in   33 minutes ago      Up 33 minutes       22/tcp, 0.0.0.0:80->8080/tcp   adoring_banach      
[root@localhost zpfile]# docker inspect -f  '{{.Id}}' c3e
c3e6b957608eef39db29361cebff3670283f2fe5a7b89ab0eee1d0ce8842fe5e
[root@localhost zpfile]# cd /var/lib/docker/devicemapper/mnt/c3e6b957608eef39db29361cebff3670283f2fe5a7b89ab0eee1d0ce8842fe5e/rootfs/var/lib/tomcat7/webapps/
[root@localhost webapps]# ls
ROOT
然后在相应的目录部署项目即可

2、从容器往外拷贝文件(向宿主机拷贝)

命令:docker cp c3e:/var/lib/tomcat7/webapps/ROOT /zpfile/    (docker cp 容器ID:容器目录或文件 宿主机目录)

[root@localhost ~]# cd /zpfile/
[root@localhost zpfile]# ls
docker
[root@localhost zpfile]# docker cp c3e:/var/lib/tomcat7/webapps/ROOT /zpfile/
[root@localhost zpfile]# ls
docker  ROOT
[root@localhost zpfile]#

3、部署完成后,把当前部署好的容器做成新的docker镜像

命令:docker commit a3c2d8714b1c tomcat7addzy

[root@localhost zpfile]# docker commit c3e tomcat7new
d5b7fc0172d7e7959f5a415cb0c6d325e04caacd1dd9f90df6890672e0c2c5c4
[root@localhost zpfile]# docker images
REPOSITORY                          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
tomcat7new                          latest              d5b7fc0172d7        10 seconds ago      267 MB
hub.c.163.com/wangjiaen/centos6.9   ssh                 5caf8ed79df7        9 weeks ago         370.9 MB
hub.c.163.com/public/tomcat         7.0.28              a3c2d8714b1c        15 months ago       266.9 MB
[root@localhost zpfile]# 




内链:

Docker——YUM升级centOS内核(一)

Docker——安装部署(二)

Docker——版本升级(三)

Docker——常用命令(四)

Docker——第一个docker服务tomcat(五)

Docker——给tomcat容器部署项目并且做成新的镜像(容器内外拷贝)(六)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!