目录
本文讲解 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 上获取来的,所以也可以自己上官网直接查找 |
-
[
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 命令删除指定的本地镜像
-
[
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 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 日期后的信息 --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 参数可以查看所有容器(即无论是否运行中)
-
[
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 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 中可以运行多个互补干扰的容器,可以将同一个镜像在多个容器中运行 |
-
[
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 查看容器日志信息。
容器端口映射
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 ps -a #查看容器 firewall-cmd --zone=public --list-port #查看防火墙开放的端口 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 目录下