docker常用命令
帮助命令
docker version # 显示docker的版本信息
docker info # 显示docker的系统信息
docker 命令 --help # 查看命令的语法
镜像命令
docker images查看本地的所有主机上的镜像
root@ljx-virtual-machine:/etc/default# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nacos/nacos-server latest 49a2aedd88f2 6 weeks ago 921MB
hello-world latest bf756fb1ae65 12 months ago 13.3kB
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]
List images
Options:
-a, --all 显示所有镜像
-q, --quiet 只显示镜像ID
docker search搜索镜像
root@ljx-virtual-machine:/etc/default# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10369 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3842 [OK]
docker pull下载镜像
root@ljx-virtual-machine:/etc/default# docker pull nacos/nacos-server
Using default tag: latest
latest: Pulling from nacos/nacos-server
5ad559c5ae16: Pull complete # 分层下载
6017af9c8561: Pull complete
21aa71320bd3: Pull complete
a4a57efe2d6f: Pull complete
0f1c0fff6d6f: Pull complete
410fc81ac31f: Pull complete
5c2895699349: Pull complete
5d1bd9299904: Pull complete
74384d8190d0: Pull complete
3cc022655b64: Pull complete
1d9592dfd91b: Pull complete
Digest: sha256:2c709c0299e7c57fdeb3aead2aae431240743607d5a1a7965273a59718854b28 # 签名
Status: Downloaded newer image for nacos/nacos-server:latest
docker.io/nacos/nacos-server:latest
docker rmi删除镜像
docker rmi -f 镜像id # 删除指定的镜像
docker rmi -f 镜像id 镜像id 镜像id # 删除多个镜像
docker rmi -f $(docker images -aq) #删除全部镜像
容器命令
说明:我们有了镜像才可以创建容器,下载一个centos镜像来测试学习
root@ljx-virtual-machine:/etc/default# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
7a0437f04f83: Pull complete
Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
新建容器并启动
docker run [可选参数] image
# 参数说明
--name 设置容器名字
-d 设置为后台启动
-it 使用交互方式运行,进入容器查看内容
-p 指定容器端口, -p 8080(容器外):8080(容器内) 容器端口映射
-P 随机指定端口
-q 只显示容器的编号
--env 设置启动参数
测试:
root@ljx-virtual-machine:/etc/default# docker run -it centos /bin/bash # 启动并进入容器
[root@7fab06265c9e /]#
从容器中退回主机:exit命令,容器停止并退出
[root@7fab06265c9e /]# exit
exit
root@ljx-virtual-machine:/etc/default#
root@ljx-virtual-machine:/etc/default# docker ps # 查看正在运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@ljx-virtual-machine:/etc/default# docker ps -a # 查看正在运行的+曾经运行过的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7fab06265c9e centos "/bin/bash" 3 minutes ago Exited (0) About a minute ago affectionate_cray
365cf38db997 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago laughing_wright
退出容器
exit # 容器停止并退出
ctrl + p + q # 容器不停止并退出
root@ljx-virtual-machine:/etc/default# docker ps 当前没有正在运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@ljx-virtual-machine:/etc/default# docker run -it centos /bin/bash 运行centos容器
[root@f981e02a1465 /]# ctrl + p + q 容器不停止并退出
root@ljx-virtual-machine:/etc/default#
root@ljx-virtual-machine:/etc/default# docker ps 查看正在运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f981e02a1465 centos "/bin/bash" 13 seconds ago Up 12 seconds clever_albattani # 发现centos容器正在运行
删除容器
docker rm 容器id # 删除指定的容器,不能删除正在运行的容器
docker rm $(docker ps -aq) # 删除所有容器
docker rm -f 容器id # 强制删除容器,包括正在运行的
docker ps -a -q|xargs docker rm # 也是删除所有的容器
启动和停止容器
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止当前正在运行的容器
docker kill 容器id # 强制停止当前容器
进入容器
docker exec -it 容器id /bin/bash # 以交互模式进入容器,开启一个新的终端
docker attach 容器id # 进入容器正在执行的终端,不开启新的终端
常用的其它命令
查看日志
docker logs --help
root@ljx-virtual-machine:~# 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)
查看容器的所有信息
docker inspect 容器id
root@ljx-virtual-machine:~# docker inspect 153942a1b7bf
[
{
"Id": "153942a1b7bf06b1c15a6894664a407cbb7b6ef30e04f9316532b0903b1acc91",
"Created": "2021-01-13T13:37:26.080293569Z",
"Path": "bin/docker-startup.sh",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 1449,
"ExitCode": 0,
"Error": "",
"StartedAt": "2021-01-14T13:37:10.745047117Z",
"FinishedAt": "2021-01-13T15:29:50.11065066Z"
},
"Image": "sha256:49a2aedd88f22de9916e2a019057cb395fa8946fa47d7801b31cdc6f8572e9d0",
"ResolvConfPath": "/var/lib/docker/containers/153942a1b7bf06b1c15a6894664a407cbb7b6ef30e04f9316532b0903b1acc91/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/153942a1b7bf06b1c15a6894664a407cbb7b6ef30e04f9316532b0903b1acc91/hostname",
"HostsPath": "/var/lib/docker/containers/153942a1b7bf06b1c15a6894664a407cbb7b6ef30e04f9316532b0903b1acc91/hosts",
"LogPath": "/var/lib/docker/containers/153942a1b7bf06b1c15a6894664a407cbb7b6ef30e04f9316532b0903b1acc91/153942a1b7bf06b1c15a6894664a407cbb7b6ef30e04f9316532b0903b1acc91-json.log",
"Name": "/nacos",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "docker-default",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": {
"8848/tcp": [
{
"HostIp": "",
"HostPort": "8848"
}
]
},
"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/181384305c9fc9f76ad02859e18a150a8b177449727ab69573c8bdebb7f2494e-init/diff:/var/lib/docker/overlay2/c65d4e0b20170d52b99e61762cff5fc8ca3c238a7e9e48e8f8a0bcf2e26a2bf0/diff:/var/lib/docker/overlay2/966301381d9d5d8ef1ae582382c775ae07a47137ea3b32dc8b3992ee95c6b5fb/diff:/var/lib/docker/overlay2/5d1c946f346277e6aa5fd58e11c568a071c94e8cc70a2a2bffd1937b18a4ecfb/diff:/var/lib/docker/overlay2/7de018cf87a69de9b93269848af55fb6537951626e564038047ca780bbe88d5a/diff:/var/lib/docker/overlay2/952e32460eb441e216f855d3d614f3e06cfa799d69c4f4b8ccdb91127c2e6fc3/diff:/var/lib/docker/overlay2/f45297403baf68250a3541d7191bfa0794ac7ca6bb47983d643ab50a45c565e3/diff:/var/lib/docker/overlay2/ffc4358b07b63175598d8c5cba3e966a5a943570c2a1b4ab6de32a987cde39f8/diff:/var/lib/docker/overlay2/f0e4030de25819f2d22ab6d19ebced5ca394d01eb7071c3a3a65b51ab5a70b08/diff:/var/lib/docker/overlay2/dde1bc10621f31fa6a6c7b348de0a9cb9686699c787118251919426dfba8d393/diff:/var/lib/docker/overlay2/82ac4cecb3ab89f14e6d36c716688791e0e700c2817ab692e18446685229c7c8/diff:/var/lib/docker/overlay2/74fbbcec8fce7a60d38c7af9c2b19f949941f8121768825b3482c3454837deb4/diff",
"MergedDir": "/var/lib/docker/overlay2/181384305c9fc9f76ad02859e18a150a8b177449727ab69573c8bdebb7f2494e/merged",
"UpperDir": "/var/lib/docker/overlay2/181384305c9fc9f76ad02859e18a150a8b177449727ab69573c8bdebb7f2494e/diff",
"WorkDir": "/var/lib/docker/overlay2/181384305c9fc9f76ad02859e18a150a8b177449727ab69573c8bdebb7f2494e/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "153942a1b7bf",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8848/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"MODE=standalone",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"PREFER_HOST_MODE=ip",
"BASE_DIR=/home/nacos",
"CLASSPATH=.:/home/nacos/conf:",
"CLUSTER_CONF=/home/nacos/conf/cluster.conf",
"FUNCTION_MODE=all",
"JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk",
"NACOS_USER=nacos",
"JAVA=/usr/lib/jvm/java-1.8.0-openjdk/bin/java",
"JVM_XMS=2g",
"JVM_XMX=2g",
"JVM_XMN=1g",
"JVM_MS=128m",
"JVM_MMS=320m",
"NACOS_DEBUG=n",
"TOMCAT_ACCESSLOG_ENABLED=false",
"TIME_ZONE=Asia/Shanghai"
],
"Cmd": null,
"Image": "nacos/nacos-server",
"Volumes": null,
"WorkingDir": "/home/nacos",
"Entrypoint": [
"bin/docker-startup.sh"
],
"OnBuild": null,
"Labels": {
"org.label-schema.schema-version": "= 1.0 org.label-schema.name=CentOS Base Image org.label-schema.vendor=CentOS org.label-schema.license=GPLv2 org.label-schema.build-date=20180531"
}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "7f80bbd80826a3b7208bb37ef4e2fe094b267c2e2883acefff09a94316ffc469",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"8848/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "8848"
}
]
},
"SandboxKey": "/var/run/docker/netns/7f80bbd80826",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "193a866ff84ac77e4fb47f36cced28b4b078662e7f93f95d29226e2a27ca1870",
"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": "1440f392a3c6f39aa951b6ab77fb59a7abe6d633d996b2e34405bc846695b015",
"EndpointID": "193a866ff84ac77e4fb47f36cced28b4b078662e7f93f95d29226e2a27ca1870",
"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
}
}
}
}
]
浙公网安备 33010602011771号