Docker 镜像、容器 常用命令,容器与宿主服务器文件复制

目录

镜像常用命令

镜像常用操作

镜像下载加速

容器常用命令

容器常用操作

容器端口映射

进入 Tomcat 容器内部

Docker 容器与宿主服务器文件复制


本文讲解 Docker 镜像 与 容器操作 的常用指令,没有安装 Docker 的可以仓库 Docker 安装

docker Hub 官网:https://hub.docker.com/

本文环境:CentOS 7.2.1511 发行版本,内核版本为 3.10.0-327.el7 + Docker 1.13

镜像常用命令

操作命令说明
搜索镜像docker search  [OPTIONS]  镜像名称Docker Hub 上检索镜像的详细信息。如:docker search redis
上传镜像docker push  [OPTIONS]  NAME[:TAG]
下载镜像docker pull  [OPTIONS]  NAME[:TAG]:tag是可选的,tag表示标签,通常是软件的版本号,不写时,默认是 latest(最新版本)
提交镜像docker commit [OPTIONS]  CONTAINER NAME[:TAG]
构建镜像docker build  [OPTIONS]  PATH
增加镜像标签docker tag SOURCE_IMAGE[:TAG]  TARGET_IMAGE[:TAG]
查看本地所有镜像docker images  [OPTIONS]  [REPOSITORY[:TAG]]
删除指定的本地镜像docker rmi [OPTIONS]  IMAGE  [IMAGE...]

镜像常用操作

一:检索云端镜像

1、使用 指令 docker search 关键字  可以检索 (搜索) Docker Hub 官网上提供的所有镜像,之后就可以下载需要的镜像

如检索 " mysql ":[root@localhost ~]# docker search mysql

如检索 " redis ":[root@localhost ~]# docker search redis

2、所有的搜索结果其实都是从 Docker Hub 上获取来的,所以也可以自己上官网直接查找


   
   
  1. [ root@wangmaoxiong001 home] # docker search mysql
  2. INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  3. docker.io docker.io/mysql MySQL is a widely used, open-source relati... 9934 [OK]
  4. docker.io docker.io/mariadb MariaDB is a community-developed fork of M... 3634 [OK]
  5. docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 724 [OK]
  6. docker.io docker.io/percona Percona Server is a fork of the MySQL rela... 508 [OK]
  7. docker.io docker.io/centos/mysql -57-centos7 MySQL 5.7 SQL database server 83
  8. docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. ... 75
  9. docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li... 61 [OK]
  10. docker.io docker.io/bitnami/mysql Bitnami MySQL Docker Image 44 [OK]
  11. docker.io docker.io/deitch/mysql-backup REPLACED! Please use http: //hub.docker.com... 41 [OK]
  12. docker.io docker.io/tutum/mysql Base docker image to run a MySQL database ... 35
  13. docker.io docker.io/prom/mysqld-exporter 31 [OK]
  14. docker.io docker.io/databack/mysql-backup Back up mysql databases to... anywhere! 30
  15. docker.io docker.io/schickling/mysql-backup- s3 Backup MySQL to S3 (supports periodic back... 30 [OK]
  16. docker.io docker.io/linuxserver/mysql A Mysql container, brought to you by Linux... 25
  17. docker.io docker.io/centos/mysql-56-centos7 MySQL 5.6 SQL database server 20
  18. docker.io docker.io/circleci/mysql MySQL is a widely used, open-source relati... 19
  19. docker.io docker.io/mysql/mysql-router MySQL Router provides transparent routing ... 16
  20. docker.io docker.io/arey/mysql-client Run a MySQL client from a docker container 14 [OK]
  21. docker.io docker.io/fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron t... 8 [OK]
  22. docker.io docker.io/openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 ima... 6
  23. docker.io docker.io/devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offi... 3
  24. docker.io docker.io/ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK]
  25. docker.io docker.io/jelastic/mysql An image of the MySQL database server main... 1
  26. docker.io docker.io/widdpim/mysql-client Dockerized MySQL Client (5.7) including Cu... 1 [OK]
  27. docker.io docker.io/monasca/mysql-init A minimal decoupled init container for mysql 0
  28. [root@wangmaoxiong001 home]#

INDEX:索引

NAME:镜像名称

DESCRIPTION:描述

STARS:关注人数,单位为 k

OFFICIAL:是否为官方发布),[ok] 则表示此版本为官方发行版本,通常使用官方版的多些。

AUTOMATED:是否自动配置,[ok] 则表示镜像已经自动配置好了,获取就能直接使用,否则需要自己手动配置

二:下载镜像

1、使用命令:docker pull 镜像名称:tag,可以从  Docker Hub 下载指定的镜像,“ :tag ” 不写时默认下载最新版本的镜像,也可以自己指定 tag 从而下载指定版本的镜像,tag 名称可以从 Docker Hub 上自己查看

示例1:如下所示下载 Mysql 官方最新版:[root@wangmaoxiong001 home]# docker pull docker.io/mysql

示例2:有时候可能并不需要使用最新版本,这时可以通过 Docker Hub 官方查看标签,指定标签下载,如:docker pull docker.io/mysql:5.7.31

三:查看本地镜像

1、使用命令 docker images 查看本地下载好的所有镜像

REPOSITORY :仓库,即下载的镜像名称

TAG:标识,通常为版本号

IMAGE ID:镜像id,删除时可以根据镜像 id 进行删除

CRREATED:镜像创建时间

SIZE:镜像大小


   
   
  1. [ root@localhost ~] # docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. docker.io/mysql 5.7 43b029b6b640 22 hours ago 372 MB
  4. docker.io/mysql latest 29e0ae3b69b9 22 hours ago 484 MB
  5. [ root@localhost ~] #

四:删除镜像

1、使用 docker rmi image-id 命令删除指定的本地镜像


   
   
  1. [ root@localhost ~] # docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. docker.io/mysql 5.7 43b029b6b640 22 hours ago 372 MB
  4. docker.io/mysql latest 29e0ae3b69b9 22 hours ago 484 MB
  5. [ root@localhost ~] # docker rmi 43b029b6b640
  6. Untagged: docker.io/mysql: 5.7
  7. Untagged: docker.io/mysql@sha256:e25e2768e910223db3095c1560aa2255371986b24fbebf4b015bae3cc60b9b34
  8. Deleted: sha256: 43b029b6b6406b40f1ba51b069980b5c14b701786830a41ebb489ad3bbf3d928
  9. .....
  10. Deleted: sha256: 35c70a35928fd6ce30c1495b9782b53b69fe0d023c35ad047072e4d7d388a753
  11. [ root@localhost ~] # docker images
  12. REPOSITORY TAG IMAGE ID CREATED SIZE
  13. docker.io/mysql latest 29e0ae3b69b9 22 hours ago 484 MB
  14. [ root@localhost ~] #

镜像下载加速

1、使用 Maven 时会从 Maven 中央仓库下载依赖,默认从官方中央仓库下载时会很慢,于是大家就会修改配置文件,设置为国内的中央仓库下载地址,此时速度就没问题了。

2、同理 Docker 也是一样,默认从 docker 官网仓库下载镜像时会很慢,也需要修改为国内仓库地址。

网易:http://hub-mirror.c.163.com

ustc:https://docker.mirrors.ustc.edu.cn

中国科技大学:https://docker.mirrors.ustc.edu.cn

3、修改 /etc/docker/daemon.json 文件,没有时可以新建,然后将上面的地址添加进来,如:


   
   
  1. {
  2. "registry-mirrors":[
  3. "http://hub-mirror.c.163.com",
  4. "https://docker.mirrors.ustc.edu.cn",
  5. "https://docker.mirrors.ustc.edu.cn"
  6. ]
  7. }

4、重启 docker 服务:

systemctl daemon-reload

service docker restart

5、可以使用 docker info 命令查看配置是否成功:


   
   
  1. [root@wangmaoxiong001 docker] # docker info
  2. ......
  3. Registry: https://index.docker.io/v1/
  4. Experimental: false
  5. Insecure Registries:
  6. 127.0.0.0/8
  7. Registry Mirrors:
  8. http://hub-mirror.c.163.com
  9. https://docker.mirrors.ustc.edu.cn
  10. https://docker.mirrors.ustc.edu.cn
  11. Live Restore Enabled: false
  12. Registries: docker.io (secure)


容器常用命令

1、软件镜像(Images)启动之后就会有一个对应的容器(Container),镜像位于自己的容器中,容器之间相互隔离。

操作命令说明
运行容器docker run --name container-name -d image-name:tag
如:docker run --name myredis –d redis

--name:自定义容器名
-d:表示后台运行
image-name:指定运行的镜像名称

-i:以交互模式运行容器,通常与 -t 同时使用
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用

tag:镜像的版本

启动容器docker start container-name/container-id
重启容器docker restart container-name/container-id
运行与启动的区别

1、运行是创建镜像的新容器并运行起来,可以为同一个镜像创建多个容器。

2、启动是对先前停止的容器重新启动

3、下载后的镜像运行之后会创建为容器并启动,之后可以对此容器进行停止、启动、删除

查看容器列表docker ps [option]加上-a;可以查看所有容器,包含停止运行的
停止容器docker stop container-name/container-id停止当前运行的指定容器
删除容器docker rm container-id删除指定容器
重命名容器docker rename CONTAINER CONTAINER_NEW

进入容器

docker attach container ,比如进入 java jdk8 容器:docker attach java-jdk8

--然后可以执行容器命令,比如 java -version 查看 jdk 版本

进入容器并执行命令

docker exec container command,比如:docker exec -it java-jdk8 /bin/bash

-- 进入后输入 exist 退出容器

-- it:表示采用交互方式执行命令。

端口映射docker run  --name myredis  -d -p 6379:6379 docker.io/redis

-p:主机端口映射到容器内部的端口

查看容器日志

-f, --follow  : 跟踪实时日志

-t, --timestamps :显示时间戳

docker logs container-name/container-id,比如:docker logs -f --tail=100 java-se-1.0  ,实时查看最新的 100 条日志信息.

docker logs -f -t --since="2021-06-13" --tail=100 container-name/container-id               -- 显示 2021-06-13 日期后的 100 条信息

docker logs -f -t --since="2021-06-13" java-se-1.0   -- 显示 2021-06-13 日期后的信息
docker logs -f -t --since="2021-06-13T16:20:00" --tail=100 container-name/container-id  --显示2021-06-13 16:20:00 时刻后的 100 条信息
docker logs --since 30m container-name/container-id    -- 查看最近30分钟的日志

--since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)

2、更多详细命令可查看 Docker 官网:https://docs.docker.com/engine/reference/commandline/docker/

3、也可以在 docker Hub 官网上查看镜像的同时查看它的命令。

容器常用操作

1、本文环境:CentOS 7.2.1511 发行版本,内核版本为 3.10.0-327.el7 + Docker 1.13

2、启动 Docker,本文以操作 Tomcat 镜像进行说明,先下载 Tomcat 镜像:docker pull docker.io/tomcat:8.5.32

一:查看容器

1、使用 docker ps 命令 查看正在运行的所有容器,加上 -a 参数可以查看所有容器(即无论是否运行中)


   
   
  1. [ root@wangmaoxiong001 home] # docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 34d0a98ea4f6 tomcat: 8.5 .32 "catalina.sh run" 4 seconds ago Up 3 seconds 8080/tcp myTomcat
  4. [ root@wangmaoxiong001 home] #

CONTAINER ID:容器 di
IMAGE:镜像名称:Tag
COMMAND:命令
CREATES:容器创建的时刻
STATUS:容器当前的状态 (up 表示运行、Exited 表示停止运行)
PORTS:镜像程序使用的端口号

NAMES:容器自定义名称

2、注意此时虽然容器已经在运行中,Tomcat 镜像占用 8080 端口,但是这个8080端口是 Docker 容器内部的端口,并不是服务器对外的访问端口,所以必须后期做 端口映射 将服务器的实际端口映射到 Docker 容器中的端口才能访问。

二:运行容器

1、命令:docker run --name container-name:tag -d image-name

--name:自定义容器名,不指定时,docker 会自动生成一个名称

-d:表示后台运行容器

image-name:指定运行的镜像名称以及 Tag

2、如下所示启动 docker.io/tomcat 镜像成功,容器名称前缀 docker.io 可以不写,后面的 tag 版本号要指定:docker run --name myTomcat -d tomcat:8.5.32 (Tomcat 容器内部含有了一个 java jdk,所以可以直接运行)


   
   
  1. [ root@wangmaoxiong001 home] # docker run --name myTomcat -d tomcat:8.5.32
  2. 34d0a98ea4f6096bc02ee14b2c061370c1badd039b57365a7821be6674f6400c
  3. [ root@wangmaoxiong001 home] # docker ps
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. 34d0a98ea4f6 tomcat: 8.5 .32 "catalina.sh run" 4 seconds ago Up 3 seconds 8080/tcp myTomcat
  6. [ root@wangmaoxiong001 home] # docker run --name myTomcat2 -d tomcat:8.5.32
  7. 7bb983541348ec50e6d0f8035cf4846cc26220c89b63434ba2455858aab79a3d
  8. [ root@wangmaoxiong001 home] # docker ps
  9. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  10. 7bb983541348 tomcat: 8.5 .32 "catalina.sh run" 6 seconds ago Up 2 seconds 8080/tcp myTomcat2
  11. 34d0a98ea4f6 tomcat: 8.5 .32 "catalina.sh run" 45 minutes ago Up 13 minutes 8080/tcp myTomcat
  12. [ root@wangmaoxiong001 home] #

 3、如上所示为同一个 tomcat 镜像运行了两个容器,端口都是 8080,因为容器与容器之间是相互隔离的,所以不用担心端口冲突等问题。

三:停止容器

1、停止容器运行,指定容器名或者容器 id 即可:docker stop container-name|container-id


   
   
  1. [ root@wangmaoxiong001 home] # docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 34d0a98ea4f6 tomcat: 8.5 .32 "catalina.sh run" 4 seconds ago Up 3 seconds 8080/tcp myTomcat
  4. [ root@wangmaoxiong001 home] # docker stop myTomcat
  5. myTomcat
  6. [ root@wangmaoxiong001 home] # docker ps
  7. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  8. [ root@wangmaoxiong001 home] #

四:启动容器

1、同理可根据 容器名或者 容器 id 进行启动:docker start container-name|container-id


   
   
  1. [ root@wangmaoxiong001 home] # docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 34d0a98ea4f6 tomcat: 8.5 .32 "catalina.sh run" 31 minutes ago Exited (143) About a minute ago myTomcat
  4. [root@wangmaoxiong001 home]# docker start 34d0a98ea4f6
  5. 34d0a98ea4f6
  6. [root@wangmaoxiong001 home]# docker ps
  7. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  8. 34d0a98ea4f6 tomcat:8.5.32 "catalina.sh run" 32 minutes ago Up 4 seconds 8080/tcp myTomcat
  9. [root@wangmaoxiong001 home]#

五:删除容器

1、docker rm container-id :根据 容器 id 进行删除容器,删除前必须先停止容器

2、镜像运行在容器中,docker 中可以运行多个互补干扰的容器,可以将同一个镜像在多个容器中运行


   
   
  1. [ root@wangmaoxiong001 home] # docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 7bb983541348 tomcat: 8.5 .32 "catalina.sh run" 3 seconds ago Up 2 seconds 8080/tcp myTomcat2
  4. 34d0a98ea4f6 tomcat: 8.5 .32 "catalina.sh run" 45 minutes ago Up 13 minutes 8080/tcp myTomcat
  5. [ root@wangmaoxiong001 home] # docker stop 7bb983541348
  6. 7bb983541348
  7. [ root@wangmaoxiong001 home] # docker ps -a
  8. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  9. 7bb983541348 tomcat: 8.5 .32 "catalina.sh run" 5 minutes ago Exited (143) 38 seconds ago myTomcat2
  10. 34d0a98ea4f6 tomcat:8.5.32 "catalina.sh run" 51 minutes ago Up 19 minutes 8080/tcp myTomcat
  11. [root@wangmaoxiong001 home]# docker rm 7bb983541348
  12. 7bb983541348
  13. [root@wangmaoxiong001 home]# docker ps -a
  14. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  15. 34d0a98ea4f6 tomcat:8.5.32 "catalina.sh run" 51 minutes ago Up 19 minutes 8080/tcp myTomcat
  16. [root@wangmaoxiong001 home]#

六:查看容器日志

1、docker logs container-name|container-id :根据容器名或者容器 id 查看容器日志信息。

容器端口映射

1、docker run --name container-name -d image-name:tag:单纯的如此运行容器,程序占用的是 Docker 容器内部的端口,并不是服务器对外的访问端口,所以必须做 端口映射 将服务器的实际端口映射到 Docker 容器中的端口才能访问。

2、docker run --name container-name:tag -d -p 服务器端口:Docker端口 image-name:端口映射

--name:自定义容器名,不指定时,docker 会自动生成一个名称

-d:表示后台运行容器

-p:表示 Linux 服务器与 Docker 容器的端口映射,默认情况下容器中镜像占用的端口是 Docker 容器中的端口,与外界是隔绝的,必须进行端口映射才能访问。

image-name:指定运行的镜像名称以及 Tag

3、下面以 Tomcat 镜像为例进行演示:

1)运行两个 tomcat 容器,容器名称分别指定为 "myTomcat1"、"myTomcat2",两个容器中都是同一个 docker.io/tomcat:8.5.32 镜像,运行的同时指定端口映射

2)如果需要远程访问 linux 服务器,则还需要为 Linux 服务器对外开放防火墙端口,否则即使做了端口映射也仍然无法访问

3)当用户访问 Linux 端口的时候,都会根据映射规则自动映射到 Docker 容器内部

4、执行命令解释如下:

docker run --name tomcat1 -d -p 8080:8080 tomcat:8.5.32       #运行容器
docker run --name tomcat2 -d -p 8090:8080 tomcat:8.5.32       #运行容器

docker ps -a                                                                                #查看容器
docker logs tomcat1                                                                   #查看容器运行日志
docker logs tomcat2                                                                   #查看容器运行日志

firewall-cmd --zone=public --list-port                                          #查看防火墙开放的端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent    #防火墙开放 8080 端口
firewall-cmd --zone=public --add-port=8090/tcp --permanent    #防火墙开放 8090 端口
firewall-cmd --reload                                                                   #重启防火墙,端口配置才能生效

ip addr show                                                                               #查看 linux 服务器 ip 地址


   
   
  1. [ root@localhost ~] # firewall-cmd --zone=public --list-port
  2. 9876/tcp 8090/tcp 80/tcp 8080/tcp
  3. [ root@localhost ~] # docker images
  4. REPOSITORY TAG IMAGE ID CREATED SIZE
  5. docker.io/tomcat 8.5 .32 5808f01b11bf 38 hours ago 463 MB
  6. [ root@localhost ~] # docker run --name myTtomcat1 -d -p 8080:8080 tomcat:8.5.32
  7. d67cca0aacf7cc4a91112721769ba56aadbe55e8e78ff6749528cf5cecb38f6e
  8. [ root@localhost ~] # docker ps -a
  9. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  10. d67cca0aacf7 tomcat: 8.5 .32 "catalina.sh run" 19 seconds ago Up 17 seconds 0.0 .0 .0: 8080-> 8080/tcp myTtomcat1
  11. [ root@localhost ~] # docker run --name myTtomcat2 -d -p 8090:8080 tomcat:8.5.32
  12. 0f6df57a7fa189710c0d2c3088334a7ff725c7e57eea71220ffb67049eaf5f5a
  13. [ root@localhost ~] # docker ps -a
  14. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  15. 0f6df57a7fa1 tomcat: 8.5 .32 "catalina.sh run" 3 seconds ago Up 1 second 0.0 .0 .0: 8090-> 8080/tcp myTtomcat2
  16. d67cca0aacf7 tomcat: 8.5 .32 "catalina.sh run" 53 seconds ago Up 51 seconds 0.0 .0 .0: 8080-> 8080/tcp myTtomcat1
  17. [ root@localhost ~] #

特别提醒:亲测 docker.io/tomcat:8.5.32 版本是可以正常访问的,而 docker.io/tomcat:8.5 版本则会访问报错,这估计是和版本有关系!

进入 Tomcat 容器内部

1、上面的容器章节介绍了如何运行 Tomcat 服务器并成功访问,通常运行容器后都会进入容器内部执行一些操作,比如查看日志,修改配置文件等等。

2、所谓的进入容器内部就如同是在本地进入安装程序的根目录下一样,进去后可以执行 linux 命令,就和外部操作一样,exist 命令可以退出。

3、这里以进入 Tomcat 容器为例进行演示,其它容器也是同理,可以看到进入 Tomcat 容器内部后看到的和本地或者容器外部安装的是一样的。


   
   
  1. [ root@wangmaoxiong001 ~] # docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 99fc58c68019 docker.io/portainer/portainer:latest "/portainer" 10 months ago Up 22 minutes 0.0 .0 .0: 9000-> 9000/tcp portainer01
  4. 0a72baa6acd4 tomcat: 8.5 .32 "catalina.sh run" 10 months ago Up 12 minutes 0.0 .0 .0: 8080-> 8080/tcp tomcat1
  5. [ root@wangmaoxiong001 ~] # docker exec -it 0a72baa6acd4 /bin/bash
  6. root@ 0a72baa6acd4:/usr/local/tomcat # ls -l
  7. total 112
  8. -rw-r-----. 1 root root 57092 Jun 20 2018 LICENSE
  9. -rw-r-----. 1 root root 1723 Jun 20 2018 NOTICE
  10. -rw-r-----. 1 root root 7138 Jun 20 2018 RELEASE-NOTES
  11. -rw-r-----. 1 root root 16246 Jun 20 2018 RUNNING.txt
  12. drwxr-x---. 2 root root 4096 Aug 14 2018 bin
  13. drwx--S---. 1 root root 21 Sep 9 2020 conf
  14. drwxr-sr-x. 3 root staff 18 Aug 14 2018 include
  15. drwxr-x---. 2 root root 4096 Aug 14 2018 lib
  16. drwxr-x---. 1 root root 4096 Aug 1 13: 12 logs
  17. drwxr-sr-x. 3 root staff 4096 Aug 14 2018 native-jni-lib
  18. drwxr-x---. 2 root root 29 Aug 14 2018 temp
  19. drwxr-x---. 7 root root 76 Jun 20 2018 webapps
  20. drwxr-x---. 1 root root 21 Sep 9 2020 work
  21. root@ 0a72baa6acd4:/usr/local/tomcat # cd bin/
  22. root@ 0a72baa6acd4:/usr/local/tomcat/bin # ls -l
  23. total 392
  24. -rw-r-----. 1 root root 34985 Jun 20 2018 bootstrap.jar
  25. -rw-r-----. 1 root root 1664 Jun 20 2018 catalina-tasks.xml
  26. -rwxr-x---. 1 root root 23473 Aug 14 2018 catalina.sh
  27. -rw-r-----. 1 root root 207125 Jun 20 2018 commons-daemon-native.tar.gz
  28. -rw-r-----. 1 root root 25145 Jun 20 2018 commons-daemon.jar
  29. -rwxr-x---. 1 root root 1932 Aug 14 2018 configtest.sh
  30. -rwxr-x---. 1 root root 8519 Aug 14 2018 daemon.sh
  31. -rwxr-x---. 1 root root 1975 Aug 14 2018 digest.sh
  32. -rwxr-x---. 1 root root 3690 Aug 14 2018 setclasspath.sh
  33. -rwxr-x---. 1 root root 1912 Aug 14 2018 shutdown.sh
  34. -rwxr-x---. 1 root root 1914 Aug 14 2018 startup.sh
  35. -rw-r-----. 1 root root 49336 Jun 20 2018 tomcat-juli.jar
  36. -rwxr-x---. 1 root root 5493 Aug 14 2018 tool-wrapper.sh
  37. -rwxr-x---. 1 root root 1918 Aug 14 2018 version.sh
  38. root@ 0a72baa6acd4:/usr/local/tomcat/bin # cd ../
  39. root@ 0a72baa6acd4:/usr/local/tomcat # cd webapps/
  40. root@ 0a72baa6acd4:/usr/local/tomcat/webapps # ls
  41. ROOT docs examples host-manager manager
  42. root@ 0a72baa6acd4:/usr/local/tomcat/webapps # java -version
  43. openjdk version "1.8.0_181"
  44. OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-1~deb9u1-b13)
  45. OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
  46. root@0a72baa6acd4:/usr/local/tomcat/webapps#

Docker 容器与宿主服务器文件复制

1、从 Linux 服务器上拷贝文件到 Docker 中,或者从 Docker 容器中拷贝文件到 Linux 服务器上,这是平时很常见的操作。

2、不管容器有没有启动,拷贝命令 docker cp 都会生效。

从 docker 容器里面拷文件到宿主服务器:docker cp 容器名/容器ID: 要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
从宿主服务器拷文件到 Docker 容器里面:docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径

3、操作示例,在服务器上执行如下命令:

docker cp java-se-1.0:/home/wangmx/logs/java-se/java-se.log /home/wangmx   -- 从名称为 java-se-1.0 的容器中,将 /home/wangmx/logs/java-se/java-se.log 文件拷贝到当前服务器的 /home/wangmx 目录下
docker cp /home/wangmx/note.txt java-se-1.0:/home/wangmx   -- 将服务器上的 /home/wangmx/note.txt 文件拷贝到 名称为 java-se-1.0 的容器中的 /home/wangmx 目录下

转载:https://blog.csdn.net/wangmx1993328/article/details/81735070
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值