一、帮助命令
1、docker version
docker version 查看docker相关的版本信息
[root@javaEE ~]# docker version
Client: Docker Engine - Community
Version: 20.10.8
API version: 1.41
Go version: go1.16.6
Git commit: 3967b7d
Built: Fri Jul 30 19:55:49 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.8
API version: 1.41 (minimum version 1.12)
Go version: go1.16.6
Git commit: 75249d8
Built: Fri Jul 30 19:54:13 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.9
GitCommit: e25210fe30a0a703442421b0f60afac609f950a3
runc:
Version: 1.0.1
GitCommit: v1.0.1-0-g4144b63
docker-init:
Version: 0.19.0
GitCommit: de40ad0
2、dcoker info
查看docker的相关的信息
[root@javaEE ~]# docker info
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Build with BuildKit (Docker Inc., v0.6.1-docker)
scan: Docker Scan (Docker Inc., v0.8.0)
Server:
Containers: 7
Running: 1
Paused: 0
Stopped: 6
Images: 4
Server Version: 20.10.8
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: e25210fe30a0a703442421b0f60afac609f950a3
runc version: v1.0.1-0-g4144b63
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-1160.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.777GiB
Name: javaEE
ID: K2PJ:CAII:ZUSA:JDWI:WJ77:MT7U:D5IO:ARFW:LEW5:6TML:IFZL:KS7H
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://06wo2xso.mirror.aliyuncs.com/
Live Restore Enabled: false
3、docker help
查看docker的相关的帮助信息,特别是对docker指令的帮助、
二、镜像的命令
1、docker images [-options]
docker images 啥都不写,列出docker在本机上的所有的镜像
[root@javaEE ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 710ec5c56683 33 hours ago 668MB
nginx latest 08b152afcfae 2 weeks ago 133MB
hello-world latest d1165f221234 5 months ago 13.3kB
centos latest 300e315adb2f 8 months ago 209MB
``
各个选项说明:`
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像
如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像
docker images -a
列出本地所有的镜像(含中间映像层),docker images默认就是docker images -a
[root@javaEE ~]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 710ec5c56683 33 hours ago 668MB
nginx latest 08b152afcfae 2 weeks ago 133MB
hello-world latest d1165f221234 5 months ago 13.3kB
centos latest 300e315adb2f 8 months ago 209MB
[root@javaEE ~]#
docker images -q
只列出镜像的ID
[root@javaEE ~]# docker images -q
710ec5c56683
08b152afcfae
d1165f221234
300e315adb2f
docker images --digests
显示镜像的摘要信息
docker images --no-trunc
显示完整的镜像信息
2、docker search [-option] name
搜素指定名字的镜像
[root@javaEE ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11236 [OK]
mariadb MariaDB Server is a high performing open sou… 4272 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 835 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 91
mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 88
centurylink/mysql Image containing mysql. Optimized to be link… 59 [OK]
databack/mysql-backup Back up mysql databases to... anywhere! 45
deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r… 41 [OK]
prom/mysqld-exporter 40 [OK]
tutum/mysql Base docker image to run a MySQL database se… 35
linuxserver/mysql A Mysql container, brought to you by LinuxSe… 30
schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 30 [OK]
mysql/mysql-router MySQL Router provides transparent routing be… 21
centos/mysql-56-centos7 MySQL 5.6 SQL database server 20
arey/mysql-client Run a MySQL client from a docker container 18 [OK]
fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron tas… 16 [OK]
yloeffler/mysql-backup This image runs mysqldump to backup data usi… 7 [OK]
openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6
devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offici… 3
ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK]
jelastic/mysql An image of the MySQL database server mainta… 2
widdpim/mysql-client Dockerized MySQL Client (5.7) including Curl… 1 [OK]
vitess/mysqlctld vitess/mysqlctld 1 [OK]
centos/mysql-80-centos7 MySQL 8.0 SQL database server 1
monasca/mysql-init A minimal decoupled init container for mysql 0
options 说明
- –no-trunc : 显示完整的镜像描述
- -s列出收藏数不小于指定值的镜像。
- –automated : 只列出 automated build类型的镜像;
[root@javaEE ~]# docker search --no-trunc mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relational database management system (RDBMS). 11236 [OK]
mariadb MariaDB Server is a high performing open source relational database, forked from MySQL. 4272 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Created, maintained and supported by the MySQL team at Oracle 835 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 91
mysql/mysql-cluster Experimental MySQL Cluster Docker images. Created by the MySQL team at Oracle 88
centurylink/mysql Image containing mysql. Optimized to be linked to another image/container. 59 [OK]
databack/mysql-backup Back up mysql databases to... anywhere! 45
deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r/databack/mysql-backup instead. 41 [OK]
prom/mysqld-exporter 40 [OK]
tutum/mysql Base docker image to run a MySQL database server 35
schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backups) 30 [OK]
linuxserver/mysql A Mysql container, brought to you by LinuxServer.io. 30
mysql/mysql-router MySQL Router provides transparent routing between your application and back-end MySQL Servers. 21
centos/mysql-56-centos7 MySQL 5.6 SQL database server 20
arey/mysql-client Run a MySQL client from a docker container 18 [OK]
fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron task manager 16 [OK]
genschsa/mysql-employees MySQL Employee Sample Database 7 [OK]
yloeffler/mysql-backup This image runs mysqldump to backup data using cronjob. Based on tutumcloud/mysql-backup 7 [OK]
openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image for use with OpenShift v3 6
cytopia/mysql-5.5 MySQL 5.5 on CentOS 7 4 [OK]
devilbox/mysql Retagged MySQL, MariaDB and PerconaDB official Docker images 3
jelastic/mysql An image of the MySQL database server maintained by Jelastic PaaS. 2
ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK]
widdpim/mysql-client Dockerized MySQL Client (5.7) including Curl to automate MySQL related jobs 1 [OK]
monasca/mysql-init A minimal decoupled init container for mysql 0
[root@javaEE ~]#
3、docker pull 镜像名字[tag]
docker pull 镜像名字[:TAG],下载镜像,tag 指定版本,不写默认为最新版本
4、docker rmi [option] 镜像名字ID
删除镜像,指定的id或者指定名字的镜像
注意当我们的镜像存在实例容器时,即使容器没有运行,也要先删除容器,在删除镜像。否则无法删除
[root@javaEE ~]# docker rmi d1165f221234
Untagged: hello-world:latest
Untagged: hello-world@sha256:df5f5184104426b65967e016ff2ac0bfcd44ad7899ca3bbcf8e44e4461491a9e
Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726
Deleted: sha256:f22b99068db93900abe17f7f5e09ec775c2826ecfe9db961fea68293744144bd
[root@javaEE ~]# docker iamges
docker: 'iamges' is not a docker command.
See 'docker --help'
[root@javaEE ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 710ec5c56683 33 hours ago 668MB
nginx latest 08b152afcfae 2 weeks ago 133MB
centos latest 300e315adb2f 8 months ago 209MB
[root@javaEE ~]#
options 说明
1.删除单个,默认 docker rmi -f 镜像ID
2. 删除多个,docker rmi -f 镜像名1:TAG 镜像名2:TAG
3. 删除全部,docker rmi -f $(docker images -qa)、
三、容器指令(普通)
镜像创建运行的容器实例
我们首先要有一个镜像才可以创建容器,使用centos镜像容器演示。
首先拉取centos的镜像,docker pull centos
1、新建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
options说明
OPTIONS说明(常用):有些是一个减号,有些是两个减号
--name="容器新名字": 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P: 随机端口映射;
-p: 指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
示例:
[root@javaEE ~]# docker run --name mysce centos
[root@javaEE ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f2ff14ffbe4b centos "/bin/bash" 11 hours ago Up 11 hours adoring_volhard
-it options结合,启动交互式容器
使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
docker run -it centos /bin/bash (-it 默认执行)
[root@javaEE ~]# docker run -it --name mycentos1 centos
[root@8cb650713436 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@8cb650713436 /]# ll
bash: ll: command not found
[root@8cb650713436 /]#
2、列出当前正在运行的容器docekr ps
docekr ps
[root@javaEE ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f2ff14ffbe4b centos "/bin/bash" 11 hours ago Up 11 hours adoring_volhard
options说明
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
–no-trunc :不截断输出。
[root@javaEE ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8cb650713436 centos "/bin/bash" 14 minutes ago Exited (127) About a minute ago mycentos1
b3a774026c3e centos "/bin/bash" 16 minutes ago Exited (0) 16 minutes ago mysce
f2ff14ffbe4b centos "/bin/bash" 11 hours ago Up 11 hours adoring_volhard
1ce8c5158464 centos "/bin/bash" 11 hours ago Exited (0) 11 hours ago kind_poitras
82432affd6f2 centos "/bin/bash" 12 hours ago Exited (137) 11 hours ago mycentos
ff134dbfc051 centos "/bin/bash" 12 hours ago Exited (0) 12 hours ago silly_keller
f6882eebf058 centos "/bin/bash" 24 hours ago Exited (0) 24 hours ago youthful_wescoff
3、退出容器
第一种:exit
退出容器,并且停止容器
第二种:ctrl+P+Q
退出容器,但是容器不会停止
4、启动我们停止的容器
docker start 容器ID或者容器名
eg:
[root@javaEE ~]# docker start 8cb650713436
5、重启容器
docker restart 容器ID或者容器名
[root@javaEE ~]# docker restart 8cb650713436
8cb650713436
[root@javaEE ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8cb650713436 centos "/bin/bash" 21 minutes ago Up 4 seconds mycentos1
f2ff14ffbe4b centos "/bin/bash" 11 hours ago Up 11 hours adoring_volhard
[root@javaEE ~]#
6、停止容器
docker stop 容器ID或者容器名
[root@javaEE ~]# docker stop 8cb650713436
8cb650713436
7、强行停止容器
docker kill 容器ID或者容器名
[root@javaEE ~]# docker kill f2ff14ffbe4b
f2ff14ffbe4b
[root@javaEE ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@javaEE ~]#
8、删除已经停止的容器[docker rm 容器ID]
上述指令是删除单个
删除多个容器
docker rm -f $(docker ps -a -q)
或者
docker ps -a -q | xargs docker rm
四、容器指令(重要)
1、启动守护式进程
#使用镜像centos:latest以后台模式启动一个容器
docker run -d centos
问题:然后docker ps -a 进行查看, 会发现容器已经退出
很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
*这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如
service nginx start
但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,
这样的容器后台启动后,会立即自杀因为他觉得他没事可做了.
所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行*
2、查看容器的日志
docker logs -f -t --tail 容器ID
* -t 是加入时间戳
* -f 跟随最新的日志打印
* --tail 数字 显示最后多少条
[root@javaEE ~]# docker logs -f -t --tail 5 8cb650713436
2021-08-08T12:04:02.941055306Z bash: docker: command not found
2021-08-08T12:04:09.447141165Z [root@8cb650713436 /]# exit
2021-08-08T12:04:09.447158293Z exit
[root@8cb650713436 /]# exit
2021-08-08T12:13:48.445379297Z [root@8cb650713436 /]# exit
3、查看容器内运行的进程
docker top 容器ID
[root@javaEE ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
53586b8a3a5b centos "/bin/bash" 15 seconds ago Up 15 seconds naughty_turing
[root@javaEE ~]# docker top 53586b8a3a5b
UID PID PPID C STIME TTY TIME CMD
root 11133 11112 0 20:26 ? 00:00:00 /bin/bash
[root@javaEE ~]#
4、查看容器内部的细节,以json格式展示数据
docker inspect 容器ID
[root@javaEE ~]# docker inspect 53586b8a3a5b
[
{
"Id": "53586b8a3a5b9fc6bd1d7493d51a9a21f339096b80bc228df9ae0c45371c0112",
"Created": "2021-08-08T12:26:34.038597872Z",
"Path": "/bin/bash",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 11133,
"ExitCode": 0,
"Error": "",
"StartedAt": "2021-08-08T12:26:34.712132614Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
"ResolvConfPath": "/var/lib/docker/containers/53586b8a3a5b9fc6bd1d7493d51a9a21f339096b80bc228df9ae0c45371c0112/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/53586b8a3a5b9fc6bd1d7493d51a9a21f339096b80bc228df9ae0c45371c0112/hostname",
"HostsPath": "/var/lib/docker/containers/53586b8a3a5b9fc6bd1d7493d51a9a21f339096b80bc228df9ae0c45371c0112/hosts",
"LogPath": "/var/lib/docker/containers/53586b8a3a5b9fc6bd1d7493d51a9a21f339096b80bc228df9ae0c45371c0112/53586b8a3a5b9fc6bd1d7493d51a9a21f339096b80bc228df9ae0c45371c0112-json.log",
"Name": "/naughty_turing",
"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/ea46fe8cbcddb450a44986c1f5755ec70731ddc73c6ec0ff0af2572fb4bd55f8-init/diff:/var/lib/docker/overlay2/2dc9ae13d07df42de6befc1ab443b453df685bc509c8dec7d998f2842db5bb43/diff",
"MergedDir": "/var/lib/docker/overlay2/ea46fe8cbcddb450a44986c1f5755ec70731ddc73c6ec0ff0af2572fb4bd55f8/merged",
"UpperDir": "/var/lib/docker/overlay2/ea46fe8cbcddb450a44986c1f5755ec70731ddc73c6ec0ff0af2572fb4bd55f8/diff",
"WorkDir": "/var/lib/docker/overlay2/ea46fe8cbcddb450a44986c1f5755ec70731ddc73c6ec0ff0af2572fb4bd55f8/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "53586b8a3a5b",
"Domainname": "",
"User": "",
"AttachStdin": true,
"AttachStdout": true,
"AttachStderr": true,
"Tty": true,
"OpenStdin": true,
"StdinOnce": true,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/bash"
],
"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": "ea5dc5d90fb792257b2a1a7f18abf1cb6dfd2806d10c376054e67006b88b017e",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "/var/run/docker/netns/ea5dc5d90fb7",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "f92ae0221f5cbd3576b0c7b1df2525749dc3ac448faa40c3dd9cc2c1b2fc8df3",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:02",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "bcdf40c01ff6a59d27f96ec2065a6a7d3c89eb60e0180a9d1cd50d3c108b9b45",
"EndpointID": "f92ae0221f5cbd3576b0c7b1df2525749dc3ac448faa40c3dd9cc2c1b2fc8df3",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:02",
"DriverOpts": null
}
}
}
}
]
5、进入正在运行的容器并以命令行交互
第一种 docker exec -it 容器ID[命令]
docker exec -it 容器ID [命令]
第二种 docker attach 容器ID
docker attach 容器ID
两种区别
attach 直接进入容器启动命令的终端,不会启动新的进程
exec 是在容器中打开新的终端,并且可以启动新的进程
exec可以在进入式就指定执行那个命令,不需要进入时再执行
attach 需要在进入之后在执行新的命令
[root@javaEE ~]# docker attach 53586b8a3a5b
[root@53586b8a3a5b /]# top
top - 12:35:29 up 12:14, 0 users, load average: 0.01, 0.04, 0.05
Tasks: 2 total, 1 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1819.4 total, 117.7 free, 917.2 used, 784.5 buff/cache
MiB Swap: 2048.0 total, 2045.2 free, 2.8 used. 718.1 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 12012 2176 1636 S 0.0 0.1 0:00.04 bash
16 root 20 0 49080 2140 1532 R 0.0 0.1 0:00.01 top
[root@javaEE ~]# docker exec -it 53586b8a3a5b top
top - 12:38:55 up 12:18, 0 users, load average: 0.13, 0.09, 0.06
Tasks: 2 total, 1 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1819.4 total, 114.9 free, 917.2 used, 787.3 buff/cache
MiB Swap: 2048.0 total, 2045.2 free, 2.8 used. 718.1 avail Mem
6、拷贝容器的文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
总结:docekr常用命令
attach 连接指定运行镜像
build Build an image from a Dockerfile # 通过 Dockerfile 定制镜像
commit Create a new image from a container changes # 提交当前容器为新的镜像
cp Copy files/folders from the containers filesystem to the host path #从容器中拷贝指定文件或者目录到宿主机中
create Create a new container # 创建一个新的容器,同 run,但不启动容器
diff Inspect changes on a container’s filesystem # 查看 docker 容器变化
events Get real time events from the server # 从 docker 服务获取容器实时事件
exec Run a command in an existing container # 在已存在的容器上运行命令
export Stream the contents of a container as a tar archive # 导出容器的内容流作为一个 tar 归档文件[对应 import ]
history Show the history of an image # 展示一个镜像形成历史
images List images # 列出系统当前镜像
import Create a new filesystem image from the contents of a tarball # 从tar包中的内容创建一个新的文件系统映像[对应export]
info Display system-wide information # 显示系统相关信息
inspect Return low-level information on a container # 查看容器详细信息
kill Kill a running container # kill 指定 docker 容器
load Load an image from a tar archive # 从一个 tar 包中加载一个镜像[对应 save]
login Register or Login to the docker registry server # 注册或者登陆一个 docker 源服务器
logout Log out from a Docker registry server # 从当前 Docker registry 退出
logs Fetch the logs of a container # 输出当前容器日志信息
port Lookup the public-facing port which is NAT-ed to PRIVATE_PORT # 查看映射端口对应的容器内部源端口
pause Pause all processes within a container # 暂停容器
ps List containers # 列出容器列表
pull Pull an image or a repository from the docker registry server # 从docker镜像源服务器拉取指定镜像或者库镜像
push Push an image or a repository to the docker registry server # 推送指定镜像或者库镜像至docker源服务器
restart Restart a running container # 重启运行的容器
rm Remove one or more containers # 移除一个或者多个容器
rmi Remove one or more images # 移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除]
run Run a command in a new container # 创建一个新的容器并运行一个命令
save Save an image to a tar archive # 保存一个镜像为一个 tar 包[对应 load]
search Search for an image on the Docker Hub # 在 docker hub 中搜索镜像
start Start a stopped containers # 启动容器
stop Stop a running containers # 停止容器
tag Tag an image into a repository # 给源中镜像打标签
top Lookup the running processes of a container # 查看容器中运行的进程信息
unpause Unpause a paused container # 取消暂停容器
version Show the docker version information # 查看 docker 版本号
wait Block until a container stops, then print its exit code # 截取容器停止时的退出状态值