Docker 镜像、容器 常用命令,容器与宿主服务器文件复制
目录镜像常用命令镜像常用操作镜像下载加速容器常用命令容器常用操作容器端口映射进入 Tomcat 容器内部Docker 容器与宿主服务器文件复制本文讲解 Docker 镜像 与 容器操作 的常用指令,没有安装 Docker 的可以仓库 Docker 安装docker Hub 官网:https://hub.docker.com/本文环境:CentOS 7.2.1511 发行版本,内核版本为 3.10.
目录
本文讲解 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...] | |
删除所有操作(批量) | docker rmi -f `docker images -q` |
镜像常用操作
1、使用 指令 docker search 关键字 可以检索 (搜索) Docker Hub 官网上提供的所有镜像,之后就可以下载需要的镜像
如检索 " mysql ":[root@localhost ~]# docker search mysql
如检索 " redis ":[root@localhost ~]# docker search redis
2、所有的搜索结果其实都是从 Docker Hub 上获取来的,所以也可以自己上官网直接查找
[root@wangmaoxiong001 home]# docker search mysql
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mysql MySQL is a widely used, open-source relati... 9934 [OK]
docker.io docker.io/mariadb MariaDB is a community-developed fork of M... 3634 [OK]
docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 724 [OK]
docker.io docker.io/percona Percona Server is a fork of the MySQL rela... 508 [OK]
docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 83
docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. ... 75
docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li... 61 [OK]
docker.io docker.io/bitnami/mysql Bitnami MySQL Docker Image 44 [OK]
docker.io docker.io/deitch/mysql-backup REPLACED! Please use http://hub.docker.com... 41 [OK]
docker.io docker.io/tutum/mysql Base docker image to run a MySQL database ... 35
docker.io docker.io/prom/mysqld-exporter 31 [OK]
docker.io docker.io/databack/mysql-backup Back up mysql databases to... anywhere! 30
docker.io docker.io/schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic back... 30 [OK]
docker.io docker.io/linuxserver/mysql A Mysql container, brought to you by Linux... 25
docker.io docker.io/centos/mysql-56-centos7 MySQL 5.6 SQL database server 20
docker.io docker.io/circleci/mysql MySQL is a widely used, open-source relati... 19
docker.io docker.io/mysql/mysql-router MySQL Router provides transparent routing ... 16
docker.io docker.io/arey/mysql-client Run a MySQL client from a docker container 14 [OK]
docker.io docker.io/fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron t... 8 [OK]
docker.io docker.io/openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 ima... 6
docker.io docker.io/devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offi... 3
docker.io docker.io/ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK]
docker.io docker.io/jelastic/mysql An image of the MySQL database server main... 1
docker.io docker.io/widdpim/mysql-client Dockerized MySQL Client (5.7) including Cu... 1 [OK]
docker.io docker.io/monasca/mysql-init A minimal decoupled init container for mysql 0
[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:镜像大小
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql 5.7 43b029b6b640 22 hours ago 372 MB
docker.io/mysql latest 29e0ae3b69b9 22 hours ago 484 MB
[root@localhost ~]#
四:删除镜像
1、使用 docker rmi image-id 命令删除指定的本地镜像
2、使用 docker rmi -f image-d 命令强制删除指定的本地镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql 5.7 43b029b6b640 22 hours ago 372 MB
docker.io/mysql latest 29e0ae3b69b9 22 hours ago 484 MB
[root@localhost ~]# docker rmi 43b029b6b640
Untagged: docker.io/mysql:5.7
Untagged: docker.io/mysql@sha256:e25e2768e910223db3095c1560aa2255371986b24fbebf4b015bae3cc60b9b34
Deleted: sha256:43b029b6b6406b40f1ba51b069980b5c14b701786830a41ebb489ad3bbf3d928
.....
Deleted: sha256:35c70a35928fd6ce30c1495b9782b53b69fe0d023c35ad047072e4d7d388a753
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql latest 29e0ae3b69b9 22 hours ago 484 MB
[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 文件,没有时可以新建,然后将上面的地址添加进来,如:
{
"registry-mirrors":[
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.mirrors.ustc.edu.cn"
]
}
4、重启 docker 服务:
systemctl daemon-reload
service docker restart
5、可以使用 docker info 命令查看配置是否成功:
[root@wangmaoxiong001 docker]# docker info
......
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
http://hub-mirror.c.163.com
https://docker.mirrors.ustc.edu.cn
https://docker.mirrors.ustc.edu.cn
Live Restore Enabled: false
Registries: docker.io (secure)
容器常用命令
1、软件镜像(Images)启动之后就会有一个对应的容器(Container),镜像位于自己的容器中,容器之间相互隔离。
操作 | 命令 | 说明 |
运行容器 | docker run --name container-name -d image-name:tag 如:docker run --name myredis –d redis | --name:自定义容器名 -i:以交互模式运行容器,通常与 -t 同时使用 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 rm -f container-id | 删除指定容器 强制删除指定容器 |
删除所有操作(批量) | docker rm -f `docker ps -a -q` | 删除所有容器 |
重命名容器 | 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 对于不是挂起的线程,采用交互式: docker run -itd --name myredis -d -p 6379:6379 docker.io/redis | -p:主机-itd端口映射到容器内部的端口 |
查看容器日志 -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 日期后的信息 --since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟) |
2、更多详细命令可查看 Docker 官网:docker | Docker Documentationhttps://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 参数可以查看所有容器(即无论是否运行中)
[root@wangmaoxiong001 home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34d0a98ea4f6 tomcat:8.5.32 "catalina.sh run" 4 seconds ago Up 3 seconds 8080/tcp myTomcat
[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,所以可以直接运行)
[root@wangmaoxiong001 home]# docker run --name myTomcat -d tomcat:8.5.32
34d0a98ea4f6096bc02ee14b2c061370c1badd039b57365a7821be6674f6400c
[root@wangmaoxiong001 home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34d0a98ea4f6 tomcat:8.5.32 "catalina.sh run" 4 seconds ago Up 3 seconds 8080/tcp myTomcat
[root@wangmaoxiong001 home]# docker run --name myTomcat2 -d tomcat:8.5.32
7bb983541348ec50e6d0f8035cf4846cc26220c89b63434ba2455858aab79a3d
[root@wangmaoxiong001 home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7bb983541348 tomcat:8.5.32 "catalina.sh run" 6 seconds ago Up 2 seconds 8080/tcp myTomcat2
34d0a98ea4f6 tomcat:8.5.32 "catalina.sh run" 45 minutes ago Up 13 minutes 8080/tcp myTomcat
[root@wangmaoxiong001 home]#
3、如上所示为同一个 tomcat 镜像运行了两个容器,端口都是 8080,因为容器与容器之间是相互隔离的,所以不用担心端口冲突等问题。
三:停止容器
1、停止容器运行,指定容器名或者容器 id 即可:docker stop container-name|container-id
[root@wangmaoxiong001 home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34d0a98ea4f6 tomcat:8.5.32 "catalina.sh run" 4 seconds ago Up 3 seconds 8080/tcp myTomcat
[root@wangmaoxiong001 home]# docker stop myTomcat
myTomcat
[root@wangmaoxiong001 home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@wangmaoxiong001 home]#
四:启动容器
1、同理可根据 容器名或者 容器 id 进行启动:docker start container-name|container-id
[root@wangmaoxiong001 home]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34d0a98ea4f6 tomcat:8.5.32 "catalina.sh run" 31 minutes ago Exited (143) About a minute ago myTomcat
[root@wangmaoxiong001 home]# docker start 34d0a98ea4f6
34d0a98ea4f6
[root@wangmaoxiong001 home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34d0a98ea4f6 tomcat:8.5.32 "catalina.sh run" 32 minutes ago Up 4 seconds 8080/tcp myTomcat
[root@wangmaoxiong001 home]#
五:删除容器
1、docker rm container-id :根据 容器 id 进行删除容器,删除前必须先停止容器
2、docker rm -f container-id:根据 容器 id 强制删除容器。
3、镜像运行在容器中,docker 中可以运行多个互补干扰的容器,可以将同一个镜像在多个容器中运行
[root@wangmaoxiong001 home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7bb983541348 tomcat:8.5.32 "catalina.sh run" 3 seconds ago Up 2 seconds 8080/tcp myTomcat2
34d0a98ea4f6 tomcat:8.5.32 "catalina.sh run" 45 minutes ago Up 13 minutes 8080/tcp myTomcat
[root@wangmaoxiong001 home]# docker stop 7bb983541348
7bb983541348
[root@wangmaoxiong001 home]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7bb983541348 tomcat:8.5.32 "catalina.sh run" 5 minutes ago Exited (143) 38 seconds ago myTomcat2
34d0a98ea4f6 tomcat:8.5.32 "catalina.sh run" 51 minutes ago Up 19 minutes 8080/tcp myTomcat
[root@wangmaoxiong001 home]# docker rm 7bb983541348
7bb983541348
[root@wangmaoxiong001 home]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34d0a98ea4f6 tomcat:8.5.32 "catalina.sh run" 51 minutes ago Up 19 minutes 8080/tcp myTomcat
[root@wangmaoxiong001 home]#
六:查看容器日志
1、docker logs container-name|container-id :根据容器名或者容器 id 查看容器日志信息。
2、docker logs -f 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 地址
[root@localhost ~]# firewall-cmd --zone=public --list-port
9876/tcp 8090/tcp 80/tcp 8080/tcp
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/tomcat 8.5.32 5808f01b11bf 38 hours ago 463 MB
[root@localhost ~]# docker run --name myTtomcat1 -d -p 8080:8080 tomcat:8.5.32
d67cca0aacf7cc4a91112721769ba56aadbe55e8e78ff6749528cf5cecb38f6e
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d67cca0aacf7 tomcat:8.5.32 "catalina.sh run" 19 seconds ago Up 17 seconds 0.0.0.0:8080->8080/tcp myTtomcat1
[root@localhost ~]# docker run --name myTtomcat2 -d -p 8090:8080 tomcat:8.5.32
0f6df57a7fa189710c0d2c3088334a7ff725c7e57eea71220ffb67049eaf5f5a
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0f6df57a7fa1 tomcat:8.5.32 "catalina.sh run" 3 seconds ago Up 1 second 0.0.0.0:8090->8080/tcp myTtomcat2
d67cca0aacf7 tomcat:8.5.32 "catalina.sh run" 53 seconds ago Up 51 seconds 0.0.0.0:8080->8080/tcp myTtomcat1
[root@localhost ~]#
特别提醒:亲测 docker.io/tomcat:8.5.32 版本是可以正常访问的,而 docker.io/tomcat:8.5 版本则会访问报错,这估计是和版本有关系!
进入 Tomcat 容器内部
1、上面的容器章节介绍了如何运行 Tomcat 服务器并成功访问,通常运行容器后都会进入容器内部执行一些操作,比如查看日志,修改配置文件等等。
2、所谓的进入容器内部就如同是在本地进入安装程序的根目录下一样,进去后可以执行 linux 命令,就和外部操作一样,exist 命令可以退出。
3、这里以进入 Tomcat 容器为例进行演示,其它容器也是同理,可以看到进入 Tomcat 容器内部后看到的和本地或者容器外部安装的是一样的。
[root@wangmaoxiong001 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99fc58c68019 docker.io/portainer/portainer:latest "/portainer" 10 months ago Up 22 minutes 0.0.0.0:9000->9000/tcp portainer01
0a72baa6acd4 tomcat:8.5.32 "catalina.sh run" 10 months ago Up 12 minutes 0.0.0.0:8080->8080/tcp tomcat1
[root@wangmaoxiong001 ~]# docker exec -it 0a72baa6acd4 /bin/bash
root@0a72baa6acd4:/usr/local/tomcat# ls -l
total 112
-rw-r-----. 1 root root 57092 Jun 20 2018 LICENSE
-rw-r-----. 1 root root 1723 Jun 20 2018 NOTICE
-rw-r-----. 1 root root 7138 Jun 20 2018 RELEASE-NOTES
-rw-r-----. 1 root root 16246 Jun 20 2018 RUNNING.txt
drwxr-x---. 2 root root 4096 Aug 14 2018 bin
drwx--S---. 1 root root 21 Sep 9 2020 conf
drwxr-sr-x. 3 root staff 18 Aug 14 2018 include
drwxr-x---. 2 root root 4096 Aug 14 2018 lib
drwxr-x---. 1 root root 4096 Aug 1 13:12 logs
drwxr-sr-x. 3 root staff 4096 Aug 14 2018 native-jni-lib
drwxr-x---. 2 root root 29 Aug 14 2018 temp
drwxr-x---. 7 root root 76 Jun 20 2018 webapps
drwxr-x---. 1 root root 21 Sep 9 2020 work
root@0a72baa6acd4:/usr/local/tomcat# cd bin/
root@0a72baa6acd4:/usr/local/tomcat/bin# ls -l
total 392
-rw-r-----. 1 root root 34985 Jun 20 2018 bootstrap.jar
-rw-r-----. 1 root root 1664 Jun 20 2018 catalina-tasks.xml
-rwxr-x---. 1 root root 23473 Aug 14 2018 catalina.sh
-rw-r-----. 1 root root 207125 Jun 20 2018 commons-daemon-native.tar.gz
-rw-r-----. 1 root root 25145 Jun 20 2018 commons-daemon.jar
-rwxr-x---. 1 root root 1932 Aug 14 2018 configtest.sh
-rwxr-x---. 1 root root 8519 Aug 14 2018 daemon.sh
-rwxr-x---. 1 root root 1975 Aug 14 2018 digest.sh
-rwxr-x---. 1 root root 3690 Aug 14 2018 setclasspath.sh
-rwxr-x---. 1 root root 1912 Aug 14 2018 shutdown.sh
-rwxr-x---. 1 root root 1914 Aug 14 2018 startup.sh
-rw-r-----. 1 root root 49336 Jun 20 2018 tomcat-juli.jar
-rwxr-x---. 1 root root 5493 Aug 14 2018 tool-wrapper.sh
-rwxr-x---. 1 root root 1918 Aug 14 2018 version.sh
root@0a72baa6acd4:/usr/local/tomcat/bin# cd ../
root@0a72baa6acd4:/usr/local/tomcat# cd webapps/
root@0a72baa6acd4:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager
root@0a72baa6acd4:/usr/local/tomcat/webapps# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-1~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
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 目录下
更多推荐
所有评论(0)