1、帮助命令
docker version #显示docker的版本信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help #帮助命令
官方帮助文档https://docs.docker.com/engine/reference/builder/
2、镜像命令
docker images 查看所有主机的命令
[root@izbp1doatyz9rmpmxs06naz ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 5 weeks ago 13.3kB
#名词解释
#REPOSITORY 镜像的仓库源
#TAG 镜像的标签
#IMAGE ID 镜像id
#CREATED 镜像创建时间
#SIZE 镜像的大小
#可选项
# -a, --all Show all images (default hides intermediate images) #列出所有镜像
# -q, --quiet Only show image IDs #只显示镜像id
docker search 搜索镜像
[root@izbp1doatyz9rmpmxs06naz ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10753 [OK]
#可选项
-f, --filter filter Filter output based on conditions provided
#使用 --filter=stars=5000
[root@izbp1doatyz9rmpmxs06naz ~]# docker search mysql --filter=stars=5000 #搜索出镜像stars大于3000的
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10753 [OK]
docker pull 下载镜像
docker pull 镜像名[:tag镜像版本]
[root@izbp1doatyz9rmpmxs06naz ~]# docker pull mysql
Using default tag: latest #如果不写tag就默认下载最新版
latest: Pulling from library/mysql
f7ec5a41d630: Pull complete
9444bb562699: Pull complete
6a4207b96940: Pull complete
181cefd361ce: Pull complete
8a2090759d8a: Pull complete
15f235e0d7ee: Pull complete
d870539cd9db: Pull complete
5726073179b6: Pull complete
eadfac8b2520: Pull complete
f5936a8c3f2b: Pull complete
cca8ee89e625: Pull complete
6c79df02586a: Pull complete
Digest: sha256:6e0014cdd88092545557dee5e9eb7e1a3c84c9a14ad2418d5f2231e930967a38 #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest #下载的真实地址
#两者等价
docker pull mysql
docker.io/library/mysql:latest
#指定版本下载
[root@izbp1doatyz9rmpmxs06naz ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
f7ec5a41d630: Already exists #分层下载,如果有已经存在的就公用,能节省空间
9444bb562699: Already exists
6a4207b96940: Already exists
181cefd361ce: Already exists
8a2090759d8a: Already exists
15f235e0d7ee: Already exists
d870539cd9db: Already exists
7310c448ab4f: Pull complete
4a72aac2e800: Pull complete
b1ab932f17c4: Pull complete
1a985de740ee: Pull complete
Digest: sha256:e42a18d0bd0aa746a734a49cbbcc079ccdf6681c474a238d38e79dc0884e0ecc
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
docker rmi 删除镜像
#单个镜像删除 docker rmi 容器id/镜像仓库:版本号
[root@izbp1doatyz9rmpmxs06naz ~]# docker rmi mysql:5.7
Untagged: mysql:5.7
Untagged: mysql@sha256:e42a18d0bd0aa746a734a49cbbcc079ccdf6681c474a238d38e79dc0884e0ecc
Deleted: sha256:450379344707c56f47d1391c18fc3ac22e2c59fbf384a0de77f2bdfc59bcbc61
Deleted: sha256:f524a8b23a8a8a9d862f6c0251b19365eda045117dae4f82bd9f16edcaf31402
Deleted: sha256:c18828290fa30349004e01790ede1117f82dd6ea26a74c83a6e985c7a3ffafdd
Deleted: sha256:33db070b2792af524b7a61a855835c813f3b06178d6103766a5c90024fe25a76
Deleted: sha256:556286c5cd9dae96e08fbef933278ca181e296098ee44ca083891e5739a87fdc
#多个镜像删除 docker rmi -f 容器id 容器id 容器id
#所有镜像删除 docker rmi -f $(docker images -aq)
[root@izbp1doatyz9rmpmxs06naz ~]# docker rmi -f $(docker images -aq) #-f删除所有镜像 -aq 显示镜像的镜像id
Untagged: mysql:latest
Untagged: mysql@sha256:6e0014cdd88092545557dee5e9eb7e1a3c84c9a14ad2418d5f2231e930967a38
Deleted: sha256:cbe8815cbea8fb86ce7d3169a82d05301e7dfe1a8d4228941f23f4f115a887f2
Deleted: sha256:c74b92ab7fde96874c2f7afa77e338ebe739b829f5cb28a9975c9b0dcb47feb9
Deleted: sha256:fded7187915726c2d2d18c8178cd70ab9aceab27f49a68ead928a662664b9402
Deleted: sha256:217ef0e6aab8111068df664529c4bdcfc2b58701913028fd0d61b00265ad5a9b
Deleted: sha256:1ab4dbca7ef7a8eb6f7ea8ddd780b5d55aac2a0098f2c217c68e31216a2de140
Deleted: sha256:1fbdda78e87b76772be16bd4a745db7f95d9af70d5a3728260548380121ae711
Deleted: sha256:cd35e2328f0670969657f1abae8beffbc1eb1fddbaf667e1e6e6286598500a35
Deleted: sha256:068b92efc0504adcd3c23f16fde80775a2f4dfe485e242206f638eae72c4fa1b
Deleted: sha256:7c8818a166d9666c68fcdbe421c30568d60d51a505e540f42901664113047a75
Deleted: sha256:5aa8f65565168fd7db2aa6b9f8fb1db746aa598fa3854dcbdbb49d5a29f6d8a5
Deleted: sha256:cca9d1bafa1ee67bb4d7178732c0955a40a5dea6e5b989f61248984f26f7306b
Deleted: sha256:34ca91e79c4027120ca740231d415c739cccad57d1ee68d6a6e67ca60bbaf3a4
Deleted: sha256:7e718b9c0c8c2e6420fe9c4d1d551088e314fe923dce4b2caf75891d82fb227d
Untagged: hello-world:latest
Untagged: hello-world@sha256:f2266cbfc127c960fd30e76b7c792dc23b588c0db76233517e1891a4e357d519
Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726
3、容器命令
新建容器并启动镜像
docker run [可选参数] image
#参数说明
--name="name" 容器的名,任意取,主要是用来区分容器
-d 后台方式启动
-it 交互方式启动,启动后进入容器
-p 指点容器的端口
-p ip:主机端口:容器端口
-p 主机端口:容器端口(使用最多)
-p 容器端口
-P 随机指点端口
#测试
[root@izbp1doatyz9rmpmxs06naz ~]# docker run -it centos /bin/bash
[root@e0b7620eb865 /]# ls
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
#从容器中退回宿主机
[root@e0b7620eb865 /]# exit
exit
[root@izbp1doatyz9rmpmxs06naz ~]#
docker ps 查看正在运行的容器
#docker ps [可选参数]
#列出当前正在运行的容器
-a #列出当前正在运行的容器和之前运行过的容器
-n=?#列出最近创建的?个容器
-q #只显示容器编号
[root@izbp1doatyz9rmpmxs06naz ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@izbp1doatyz9rmpmxs06naz ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e0b7620eb865 centos "/bin/bash" 7 minutes ago Exited (0) 5 minutes ago frosty_swanson
2ba95d8ae20b centos "/bin/centos" 7 minutes ago Created determined_dubinsky
9c5505e3c614 d1165f221234 "/hello" 54 minutes ago Exited (0) 54 minutes ago pensive_wu
退出容器
#退出并停止
exit
#退出容器继续运行
ctrl+P+Q
docker rm 删除容器
docker rm 容器id #删除指点的容器,不能删除正在运行的容器,如果要强制删除加 -f
docker rm -f $(docker ps -aq) #删除所有容器
docker ps -a -q|xzrgs docker rm #删除所有容器
容器启动和停止操作
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
4、常用的其他命令
后台启动容器
# docker run -d 镜像名
[root@izbp1doatyz9rmpmxs06naz ~]# docker run -d centos
0e749b886d65221ec8aefed414f9f3e7c7a8a137852ffbe37bb19ece46301ca0
[root@izbp1doatyz9rmpmxs06naz ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
#注意:后台方式启动容器,由于没有客户端,就会默认关闭。当使用docker ps查看当前正在运行的容器时,后台启动的容器已经停止。
docker logs查看日志
#docker logs -f -t --tall 10 容器
-tf #显示日志
--tail number #number 表示要显示的日志条数
查看容器中的进程信息
# docker top 容器id
[root@izbp1doatyz9rmpmxs06naz ~]# docker top b036d2f50c7e
UID PID PPID C STIME TTY TIME CMD
root 12111 12058 0 22:48 pts/0 00:00:00 /bin/bash
查看镜像元素
# docker inspect 容器id
[root@izbp1doatyz9rmpmxs06naz ~]# docker inspect b036d2f50c7e
[
{
"Id": "b036d2f50c7e3a16782d46c5144e204b20c2b4eb499357d9c6dd00663e559c4f",
"Created": "2021-04-16T14:48:13.627920583Z",
"Path": "/bin/bash",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 12111,
"ExitCode": 0,
"Error": "",
"StartedAt": "2021-04-16T14:48:13.90601888Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
"ResolvConfPath": "/var/lib/docker/containers/b036d2f50c7e3a16782d46c5144e204b20c2b4eb499357d9c6dd00663e559c4f/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/b036d2f50c7e3a16782d46c5144e204b20c2b4eb499357d9c6dd00663e559c4f/hostname",
"HostsPath": "/var/lib/docker/containers/b036d2f50c7e3a16782d46c5144e204b20c2b4eb499357d9c6dd00663e559c4f/hosts",
"LogPath": "/var/lib/docker/containers/b036d2f50c7e3a16782d46c5144e204b20c2b4eb499357d9c6dd00663e559c4f/b036d2f50c7e3a16782d46c5144e204b20c2b4eb499357d9c6dd00663e559c4f-json.log",
"Name": "/frosty_gagarin",
"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/4f87e5486f8328b5d83f13462ba89461ada5a45f304f47afd4483e57a61e57f3-init/diff:/var/lib/docker/overlay2/e8995a45012a96df4b82e0128c2bdf8db3c3c45a3d738e4789a87b19adea9776/diff",
"MergedDir": "/var/lib/docker/overlay2/4f87e5486f8328b5d83f13462ba89461ada5a45f304f47afd4483e57a61e57f3/merged",
"UpperDir": "/var/lib/docker/overlay2/4f87e5486f8328b5d83f13462ba89461ada5a45f304f47afd4483e57a61e57f3/diff",
"WorkDir": "/var/lib/docker/overlay2/4f87e5486f8328b5d83f13462ba89461ada5a45f304f47afd4483e57a61e57f3/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "b036d2f50c7e",
"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": "51bc082c6c0e4190c7f211b07de4f4578862e29851b358b7d5f901b717d916dc",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "/var/run/docker/netns/51bc082c6c0e",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "d33ad82c1b5ccbd7281d9b50c3155364be8640067ecfb5df1d7e29a5cab222e4",
"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": "d34453a0b9284337290b54d39b9960b1eac0385699c78ca71552ccdb6b5fc30c",
"EndpointID": "d33ad82c1b5ccbd7281d9b50c3155364be8640067ecfb5df1d7e29a5cab222e4",
"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
}
}
}
}
]
进入当前正在运行的容器
# docker exec -it 容器id /bin/bash
[root@izbp1doatyz9rmpmxs06naz ~]# docker exec -it b036d2f50c7e /bin/bash
[root@b036d2f50c7e /]#
# docker attach 容器id
[root@izbp1doatyz9rmpmxs06naz ~]# docker attach b036d2f50c7e
[root@b036d2f50c7e /]#
#两者区别
#docker exec #进入容器后开启一个新的终端,在里面进行操作
#docker attach #进入容器正在执行的终端,不会启动新的进程
从容器内拷贝文件到宿主机
docker cp 容器id:容器内路径 宿主机路径