帮助命令
| 命令 | 描述 |
|---|---|
| docker version | 打印docker的基本信息 |
| docker info | 显示docker的详细信息,包括镜像和容器信息 |
| docker —help | 帮助命令 |
镜像命令
docker images
查看本机的镜像文件。如果不知道怎么用,可以用 docker images —help 命令。
下面是 docker images 命令输出的属性:
| 命令 | 描述 |
|---|---|
| repository | 镜像的仓库源 |
| tag | 镜像的标签 |
| image id | 镜像的ID |
| created | 镜像的创建时间 |
| size | 镜像的大小 |
选项参数
| 选项 | 描述 |
|---|---|
| -a, —all | 显示所有镜像(如果没有这个参数,默认隐藏临时镜像) |
| -q, —quiet | 仅列出镜像ID |
docker search 搜索镜像
搜索mysql
C:\Users\27801>docker search mysqlNAME DESCRIPTION STARS OFFICIAL AUTOMATEDmysql MySQL is a widely used, open-source relation… 11079 [OK]mariadb MariaDB Server is a high performing open sou… 4197 [OK]
选项参数
| 选项 | 描述 |
|---|---|
| —filter | 过滤某些属性 |
比如说查找 STARS 超过4000的镜像文件,可以用命令 docker search mysql --filter=STARS=4000
docker pull 下载镜像
docker pull 镜像名[:tag]
比如docker pull mysql,下载mysql的镜像文件。如果不写tag,默认下载最新版本的镜像文件。docker pull mysql:5.7,下载5.7版本的mysql。
docker rmi 删除镜像
docker rmi 容器名/容器ID
容器命令
docker run 启动
docker run [可选参数] 镜像名
选项参数
| 选项 | 描述 |
|---|---|
| —name=”name” | 容器名字(别名),tomcat1, tomcat2, 用以区分容器 |
| -d | 后台方式运行 |
| -it | 交互方式运行,进入容器查看内容 |
| -p | 制定容器端口。-p 主机端口:容器端口 |
| -P | 随机制定容器端口 |
docker ps 列出运行中的容器
选项参数
| 选项 | 描述 |
|---|---|
| -a | 列出当前运行的容器+历史运行的容器 |
| -n=? | 显示最近运行的容器 |
| -q | 仅列出容器ID |
退出容器
docker rm 删除容器
docker rm 容器ID
启动和停止容器
把以前停止的容器重新启动
docker start 容器ID
停止容器
docker stop 容器ID
重启容器
docker restart 容器ID
强制停止容器
docker kill 容器ID
常用其他命令
查看日志
docker logs -t -f 容器ID
查看容器内部进程
docker top 容器ID
容器详细信息
docker inspect 容器ID
查看hello-world容器的信息
C:\Users\27801>docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESab8499780ba7 hello-world "/hello" About an hour ago Exited (0) About an hour ago tender_agnesiC:\Users\27801>docker inspect ab8499780ba7[{"Id": "ab8499780ba7cae764b0f5abb73e48caf3a98ad695d3c6494cd6e3d5e3d95640","Created": "2021-07-03T01:43:17.0177871Z","Path": "/hello","Args": [],"State": {"Status": "exited","Running": false,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 0,"ExitCode": 0,"Error": "","StartedAt": "2021-07-03T01:43:17.3805793Z","FinishedAt": "2021-07-03T01:43:17.3802664Z"},"Image": "sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726","ResolvConfPath": "/var/lib/docker/containers/ab8499780ba7cae764b0f5abb73e48caf3a98ad695d3c6494cd6e3d5e3d95640/resolv.conf","HostnamePath": "/var/lib/docker/containers/ab8499780ba7cae764b0f5abb73e48caf3a98ad695d3c6494cd6e3d5e3d95640/hostname","HostsPath": "/var/lib/docker/containers/ab8499780ba7cae764b0f5abb73e48caf3a98ad695d3c6494cd6e3d5e3d95640/hosts","LogPath": "/var/lib/docker/containers/ab8499780ba7cae764b0f5abb73e48caf3a98ad695d3c6494cd6e3d5e3d95640/ab8499780ba7cae764b0f5abb73e48caf3a98ad695d3c6494cd6e3d5e3d95640-json.log","Name": "/tender_agnesi","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": [30,120],"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/a6e0516e33f9e4381907d394265515db0d0d82037bfd434f160c6bfad59b9735-init/diff:/var/lib/docker/overlay2/49f2ef518f5b1cf5a3fdd363eff91d1526ea977f4fe7e377c513e3b7eac96e61/diff","MergedDir": "/var/lib/docker/overlay2/a6e0516e33f9e4381907d394265515db0d0d82037bfd434f160c6bfad59b9735/merged","UpperDir": "/var/lib/docker/overlay2/a6e0516e33f9e4381907d394265515db0d0d82037bfd434f160c6bfad59b9735/diff","WorkDir": "/var/lib/docker/overlay2/a6e0516e33f9e4381907d394265515db0d0d82037bfd434f160c6bfad59b9735/work"},"Name": "overlay2"},"Mounts": [],"Config": {"Hostname": "ab8499780ba7","Domainname": "","User": "","AttachStdin": false,"AttachStdout": true,"AttachStderr": true,"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd": ["/hello"],"Image": "hello-world","Volumes": null,"WorkingDir": "","Entrypoint": null,"OnBuild": null,"Labels": {}},"NetworkSettings": {"Bridge": "","SandboxID": "eb4909ebd0550654c6b4f882a47a9539cae3aca49bdb112d26218e2c87e1b01a","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {},"SandboxKey": "/var/run/docker/netns/eb4909ebd055","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "","Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"IPAddress": "","IPPrefixLen": 0,"IPv6Gateway": "","MacAddress": "","Networks": {"bridge": {"IPAMConfig": null,"Links": null,"Aliases": null,"NetworkID": "687509dc5975469e6868d3af2a7946a391bf03da9bc2e1695601f6e06f07d7b5","EndpointID": "","Gateway": "","IPAddress": "","IPPrefixLen": 0,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "","DriverOpts": null}}}}]
进入容器
方式一
命令:
docker exec -it 容器ID bashShell
方式二
命令:
docker attach 容器ID
拷贝容器文件到宿主机
docker cp 容器ID:容器内的路径 宿主机路径
进入容器创建一个文件,并退出容器。退出容器后,容器停止运行,但文件依然存在于容器内。
C:\Users\27801>docker attach 7e5f3bdd5fd6[root@7e5f3bdd5fd6 /]# cd /home/[root@7e5f3bdd5fd6 home]# touch Dj.java[root@7e5f3bdd5fd6 home]# lsDj.java[root@7e5f3bdd5fd6 home]# exit;exit
拷贝文件到宿主机,宿主机的文件目录必须存在,否则会拷贝失败。
C:\Users\27801>docker cp 7e5f3bdd5fd6:/home/Dj.java D:/temp/
拷贝是一个手动过程,相当繁琐。后面会通过挂载卷的方式把容器内的文件同步到宿主机内。
