Docker的常用命令
docker version #显示Docker的信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help #帮助命令
帮助文档的地址:https://docs.docker.com/reference/
docker images 查看所有本机的主机上的镜像
[root@localhost wanghao-dm8]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 13 months ago 13.3kB
#解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小
#可选项
-a, --all # 列出所有的镜像
-q, --quiet #只显示镜像的id
docker search 搜索镜像
[root@localhost wanghao-dm8]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10532 [OK]
#可选项,通过收藏来过滤
--filter=STARS=3000 # 搜索出来的镜像
[root@localhost wanghao-dm8]# docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10532 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3934 [OK]
[root@localhost wanghao-dm8]# docker search mysql --filter=STARS=5000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10532 [OK] 收藏大于3000
docker pull 下载镜像
# 下载镜像 docker pull 镜像名[:tag]
[root@localhost wanghao-dm8]# docker pull mysql
Using default tag: latest # 如果不写tag,默认的就是latest
latest: Pulling from library/mysql
a076a628af6f: Pull complete # 分层下载,docker image的核心 联合文件系统
f6c208f3f991: Pull complete
88a9455a9165: Pull complete
406c9b8427c6: Pull complete
7c88599c0b25: Pull complete
25b5c6debdaf: Pull complete
43a5816f1617: Pull complete
1a8c919e89bf: Pull complete
9f3cf4bd1a07: Pull complete
80539cea118d: Pull complete
201b3cad54ce: Pull complete
944ba37e1c06: Pull complete
Digest: sha256:feada149cb8ff54eade1336da7c1d080c4a1c7ed82b5e320efb5beebed85ae8c
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 真实地址
#等价于它
docker pull mysql
docker pull docker.io/library/mysql:latest
#指定版本下载
[root@localhost wanghao-dm8]# docker pull mysql:5.7
5.7: Pulling from library/mysql
a076a628af6f: Already exists
f6c208f3f991: Already exists
88a9455a9165: Already exists
406c9b8427c6: Already exists
7c88599c0b25: Already exists
25b5c6debdaf: Already exists
43a5816f1617: Already exists
1831ac1245f4: Pull complete
37677b8c1f79: Pull complete
27e4ac3b0f6e: Pull complete
7227baa8c445: Pull complete
Digest: sha256:b3d1eff023f698cd433695c9506171f0d08a8f92a0c8063c1a4d9db9a55808df
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
docker rmi 删除镜像!
[root@localhost wanghao-dm8]# docker rmi -f 镜像id # 删除指定的容器
[root@localhost wanghao-dm8]# docker rmi -f 镜像id 镜像id 镜像id 镜像id # 删除多个镜像
[root@localhost wanghao-dm8]# docker rmi -f $(docker images -aq) # 删除全部的镜像
说明:我们有了镜像才可以创建容器,Linux,下载一个centos镜像来测试学习
docker pull centos
新建容器并启动
docker run [可选参数] image
# 参数说明
--name="Name" 容器名字 tomcat01 tomcat02,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
容器端口
-P 随机指定端口
# 测试,启动并进入容器
[root@localhost wanghao-dm8]# docker run -it centos /bin/bash
[root@284d7a32115f /]# ls # 查看容器内的CentOS,基础版本,很多命令是不完善的!
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
#从容器中退回主机
[root@284d7a32115f ~]# exit
exit
[root@localhost wanghao-dm8]# cd /
[root@localhost /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
列出所有的容器
#docker ps 命令
# 列出当前正在运行的容器
-a # 列出当前正在运行的容器+带出历史运行过的容器
-n=? # 显示最近创建的容器
-q # 只显示容器的编号
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
284d7a32115f centos "/bin/bash" 7 minutes ago Exited (127) 2 minutes ago peaceful_perlman
ae8308363f7e bf756fb1ae65 "/hello" About an hour ago Exited (0) About an hour ago upbeat_liskov
56948b3b1115 bf756fb1ae65 "/hello" About an hour ago Exited (0) About an hour ago unruffled_proskuriakova
3cae5dbac390 bf756fb1ae65 "/hello" About an hour ago Exited (0) About an hour ago awesome_golick
退出容器
exit # 直接退出容器
Ctrl + P + Q # 容器不停止直接退出[root@localhost /]# docker run -it centos /bin/bash
[root@30881832ba31 /]# [root@localhost /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
30881832ba31 centos "/bin/bash" 17 seconds ago Up 15 seconds elegant_tu
删除容器
docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,如果要强制删除rm -f
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
30881832ba31 centos "/bin/bash" 8 minutes ago Up 8 minutes elegant_tu
284d7a32115f centos "/bin/bash" 22 minutes ago Exited (127) 18 minutes ago peaceful_perlman
ae8308363f7e bf756fb1ae65 "/hello" About an hour ago Exited (0) About an hour ago upbeat_liskov
56948b3b1115 bf756fb1ae65 "/hello" About an hour ago Exited (0) About an hour ago unruffled_proskuriakova
3cae5dbac390 bf756fb1ae65 "/hello" About an hour ago Exited (0) About an hour ago awesome_golick
[root@localhost /]# docker rm 284d7a32115f
284d7a32115f
[root@localhost /]# docker rm 30881832ba31
Error response from daemon: You cannot remove a running container 30881832ba31c69b3a4c1c99b3b3917f483fc59700ba877cbd60d65e0c3cdb64. Stop the container before attempting removal or force remove
[root@localhost /]# docker rm -f 30881832ba31
30881832ba31
docker rm -f $(docker ps -aq) # 删除所有的容器
[root@localhost /]# docker rm -f $(docker ps -aq)
ae8308363f7e
56948b3b1115
3cae5dbac390
docker ps -a -q | xargs docker rm # 删除所有的容器(Linux常用的管道命令)
启动和停止容器的操作
docker start 容器id # 启动容器
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
415f2e9ac9f2 centos "/bin/bash" About a minute ago Up About a minute quizzical_perlman
beb3aa4382b1 centos "/bin/bash" About a minute ago Exited (0) About a minute ago fervent_jones
a307ae552e33 hello-world "/hello" 4 minutes ago Exited (0) 4 minutes ago festive_euclid
[root@localhost /]# docker start beb3aa4382b1
beb3aa4382b1
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
415f2e9ac9f2 centos "/bin/bash" 2 minutes ago Up 2 minutes quizzical_perlman
beb3aa4382b1 centos "/bin/bash" 3 minutes ago Up 6 seconds fervent_jones
a307ae552e33 hello-world "/hello" 5 minutes ago Exited (0) 5 minutes ago festive_euclid
docker restart 容器id # 重启容器
[root@localhost /]# docker restart a307ae552e33
a307ae552e33
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
415f2e9ac9f2 centos "/bin/bash" 6 minutes ago Up 6 minutes quizzical_perlman
beb3aa4382b1 centos "/bin/bash" 6 minutes ago Up 3 minutes fervent_jones
a307ae552e33 hello-world "/hello" 9 minutes ago Exited (0) 16 seconds ago festive_euclid
docker stop 容器id # 停止当前正在运行的容器
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
415f2e9ac9f2 centos "/bin/bash" 8 minutes ago Up 8 minutes quizzical_perlman
beb3aa4382b1 centos "/bin/bash" 8 minutes ago Up 5 minutes fervent_jones
[root@localhost /]# docker stop beb3aa4382b1
beb3aa4382b1
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
415f2e9ac9f2 centos "/bin/bash" 8 minutes ago Up 8 minutes quizzical_perlman
beb3aa4382b1 centos "/bin/bash" 8 minutes ago Exited (0) 4 seconds ago fervent_jones
a307ae552e33 hello-world "/hello" 11 minutes ago Exited (0) 2 minutes ago festive_euclid
docker kill 容器id # 强制停止当前容器(只能kill当前正在运行的容器,STATUS为running)
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
415f2e9ac9f2 centos "/bin/bash" 8 minutes ago Up 8 minutes quizzical_perlman
beb3aa4382b1 centos "/bin/bash" 8 minutes ago Exited (0) 4 seconds ago fervent_jones
a307ae552e33 hello-world "/hello" 11 minutes ago Exited (0) 2 minutes ago festive_euclid
[root@localhost /]# docker kill 415f2e9ac9f2
415f2e9ac9f2
[root@localhost /]# docker kill beb3aa4382b1
Error response from daemon: Cannot kill container: beb3aa4382b1: Container beb3aa4382b13cb83ac40cd41fb3ff2e6a1bb3673369aabf7aebe1456f1f9bc2 is not running
常用其他命令
后台启动容器
# 命令 docker run -d 镜像名 !
# 问题docker ps,发现 centos 停止了
# 常见的坑:docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
# nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
[root@localhost /]# docker run -d centos
4c8c0f14ff9aceef9894bb0b79845c7954bdd3a6b954e8448e0ced4deb2f3a81
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c8c0f14ff9a centos "/bin/bash" 18 seconds ago Exited (0) 17 seconds ago peaceful_hofstadter
3f439b843615 centos "/bin/bash" 2 hours ago Exited (0) 2 hours ago dazzling_galois
415f2e9ac9f2 centos "/bin/bash" 5 hours ago Exited (137) 5 hours ago quizzical_perlman
beb3aa4382b1 centos "/bin/bash" 5 hours ago Exited (0) 5 hours ago fervent_jones
a307ae552e33 hello-world "/hello" 5 hours ago Exited (0) 5 hours ago festive_euclid
查看日志命令
docker logs -f -t --tail 10
[root@localhost /]# docker logs --help
Usage: docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
Options:
--details Show extra details provided to logs
-f, --follow Follow log output
--since string Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
-n, --tail string Number of lines to show from the end of the logs (default "all")
-t, --timestamps Show timestamps
--until string Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2583ef8123ae centos "/bin/bash" 2 minutes ago Up 2 minutes friendly_keller
[root@localhost /]# docker logs -f -t --tail 10 2583ef8123ae
2021-02-22T12:07:34.673150592Z [root@2583ef8123ae /]# ls
2021-02-22T12:07:34.677676416Z bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
2021-02-22T12:07:39.740698968Z [root@2583ef8123ae /]#
2021-02-22T12:07:42.769436538Z Display all 633 possibilities? (y or n)
^C
# 伪造一个控制台来整可以显示的日志
# docker run -d centos /bin/sh -c "shell程序" #采用后台启动的方式来运行一个容器,使用sh终端控制台来运行下面的shell程序
## 补充 docker run -d imageName [这个地方写的是]
[root@localhost /]# docker run -d centos /bin/sh -c "while true;do echo wanghao;sleep 1;done"
e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e5b5e95de4b3 centos "/bin/sh -c 'while t…" 6 seconds ago Up 4 seconds funny_mestorf
2583ef8123ae centos "/bin/bash" 9 minutes ago Up 9 minutes friendly_keller
# 显示日志
-tf # 显示日志并且follow,并且format
--tail number # 要显示的日志条数
[root@localhost /]# docker logs -f -t --tail 10 e5b5e95de4b3
2021-02-22T12:20:12.443279299Z wanghao
2021-02-22T12:20:13.447022774Z wanghao
2021-02-22T12:20:14.449002616Z wanghao
查看容器中进程信息 ps
#top 命令 docker top 容器id
[root@localhost /]# docker top e5b5e95de4b3
UID PID PPID C STIME TTY TIME CMD
root 21584 21565 0 20:16 ? 00:00:00 /bin/sh -c while true;do echo wanghao;sleep 1;done
root 22759 21584 0 20:30 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
查看镜像源数据相关信息
# 命令
docker inspect 容器id
[root@localhost /]# docker inspect e5b5e95de4b3
[
{
"Id": "e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb", # 容器id的全部显示
"Created": "2021-02-22T12:16:38.919218004Z", # 镜像创建的时间
"Path": "/bin/sh", # 默认的bash控制台
"Args": [
"-c",
"while true;do echo wanghao;sleep 1;done"
], # 运行的参数,Linux的运行的命令
"State": {
"Status": "running", # 运行状态的
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 21584, # CPU的PID状态
"ExitCode": 0,
"Error": "",
"StartedAt": "2021-02-22T12:16:39.770773751Z", # 开始运行的时间
"FinishedAt": "0001-01-01T00:00:00Z" # 结束运行的时间
},
"Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
"ResolvConfPath": "/var/lib/docker/containers/e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb/hostname",
"HostsPath": "/var/lib/docker/containers/e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb/hosts",
"LogPath": "/var/lib/docker/containers/e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb/e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb-json.log",
"Name": "/funny_mestorf",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": {},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": null,
"CapDrop": null,
"CgroupnsMode": "host",
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"ConsoleSize": [
0,
0
],
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": [],
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"KernelMemory": 0,
"KernelMemoryTCP": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": false,
"PidsLimit": null,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/985a013fa5cdd4834f587587180137a781560c2031468ecbe335ec492de36144-init/diff:/var/lib/docker/overlay2/db145e993f4c7a080cb0ad062a1954a5579372153681327eab071706fecdbbc6/diff",
"MergedDir": "/var/lib/docker/overlay2/985a013fa5cdd4834f587587180137a781560c2031468ecbe335ec492de36144/merged",
"UpperDir": "/var/lib/docker/overlay2/985a013fa5cdd4834f587587180137a781560c2031468ecbe335ec492de36144/diff",
"WorkDir": "/var/lib/docker/overlay2/985a013fa5cdd4834f587587180137a781560c2031468ecbe335ec492de36144/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "e5b5e95de4b3", # 主机名字
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
], # 对应的环境变量
"Cmd": [
"/bin/sh",
"-c",
"while true;do echo wanghao;sleep 1;done"
], # CMD的控制台命令
"Image": "centos",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"org.label-schema.build-date": "20201204",
"org.label-schema.license": "GPLv2",
"org.label-schema.name": "CentOS Base Image",
"org.label-schema.schema-version": "1.0",
"org.label-schema.vendor": "CentOS"
}
},
"NetworkSettings": { # 网络的配置
"Bridge": "",
"SandboxID": "5297f32d2013f82341bca0dc78f0d662f34512763d50332b140968ff0ec8252e",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "/var/run/docker/netns/5297f32d2013",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "503831670ec11f01df130671797c341fd6486d7ac50528285872054f8f67f60e",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:03",
"Networks": {
"bridge": { # 当前使用的是桥接的网卡
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "1fa963db8eb137c8658caf569fd5c086fa948a3729e856780a8276a4beb26969",
"EndpointID": "503831670ec11f01df130671797c341fd6486d7ac50528285872054f8f67f60e",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:03",
"DriverOpts": null
}
}
}
}
]
进入当前正在运行的容器
# 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
# 命令 方式一
docker exec -it 容器id bashShell
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e5b5e95de4b3 centos "/bin/sh -c 'while t…" 3 hours ago Up 3 hours funny_mestorf
2583ef8123ae centos "/bin/bash" 3 hours ago Up 3 hours friendly_keller
[root@localhost /]# docker exec -it e5b5e95de4b3 /bin/bash
[root@e5b5e95de4b3 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@e5b5e95de4b3 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 12:16 ? 00:00:03 /bin/sh -c while true;do echo wanghao;sleep 1;done
root 9373 0 0 14:52 pts/0 00:00:00 /bin/bash
root 9395 1 0 14:52 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
root 9396 9373 0 14:52 pts/0 00:00:00 ps -ef
# 方式二 命令
docker attach 容器id
# 测试
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e5b5e95de4b3 centos "/bin/sh -c 'while t…" 3 hours ago Up 3 hours funny_mestorf
2583ef8123ae centos "/bin/bash" 3 hours ago Up 3 hours friendly_keller
[root@localhost /]# docker attach e5b5e95de4b3
wanghao
wanghao
docker exec [-it表示的是可选参数的交互模式] 容器id [Linux命令] # 进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach 容器id # 进入容器正在执行的终端,不会启动新的进程!
从容器中拷贝到主机
# docker cp 容器id:容器中的路径 主机中的路径
# 进入docker容器内部
[root@localhost wanghao-dm8]# docker attach 2583ef8123ae
[root@2583ef8123ae /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@2583ef8123ae /]# cd ~
[root@2583ef8123ae ~]# ls
anaconda-ks.cfg anaconda-post.log original-ks.cfg
# 在容器中新建一个文件
[root@2583ef8123ae ~]# touch test.java
[root@2583ef8123ae ~]# ls
anaconda-ks.cfg anaconda-post.log original-ks.cfg test.java
# 退出容器
[root@2583ef8123ae ~]# exit
[root@localhost wanghao-dm8]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e5b5e95de4b3 centos "/bin/sh -c 'while t…" 3 hours ago Up 3 hours funny_mestorf
2583ef8123ae centos "/bin/bash" 3 hours ago Exited (0) 13 seconds ago friendly_keller
4c8c0f14ff9a centos "/bin/bash" 3 hours ago Exited (0) 3 hours ago peaceful_hofstadter
3f439b843615 centos "/bin/bash" 5 hours ago Exited (0) 5 hours ago dazzling_galois
415f2e9ac9f2 centos "/bin/bash" 8 hours ago Exited (137) 8 hours ago quizzical_perlman
beb3aa4382b1 centos "/bin/bash" 8 hours ago Exited (0) 8 hours ago fervent_jones
a307ae552e33 hello-world "/hello" 9 hours ago Exited (0) 8 hours ago festive_euclid
# 将这个文件拷贝出来到主机上
[root@localhost wanghao-dm8]# docker cp 2583ef8123ae:/root/test.java /home/wanghao-dm8/
[root@localhost wanghao-dm8]# ls
test.java 公共 模板 视频 图片 文档 下载 音乐 桌面
# 拷贝是一个手动过程,备份之类的不建议使用
# 摘取自 docker --help
attach Attach local standard input, output, and error streams to a running container
build Build an image from a Dockerfile
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
events Get real time events from the server
exec Run a command in a running container
export Export a container's filesystem as a tar archive
history Show the history of an image
images List images
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on Docker objects
kill Kill one or more running containers
load Load an image from a tar archive or STDIN
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes
版权:狂神Docker上课笔记+部分原创,之后还会填充
混入相关的Linux操作系统知识食用更佳,当然本人是小白一枚,欢迎指教!!!