docker version #显示docker版本信息 docker info #显示docker系统信息,包括镜像和容器 docker --help #帮助1.2 镜像命令
docker images
[root@localhost zyf]# docker images #列出本地主机上的镜像 REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.7 938b57d64674 2 weeks ago 448MB hello-world latest feb5d9fea6a5 5 weeks ago 13.3kB centos latest 5d0da3dc9764 6 weeks ago 231MB #解释 REPOSITORY 镜像的仓库源 TAG 镜像的标签 IMAGE ID 镜像的ID CREATED 镜像创建时间 SIZE 镜像大小 # 同一个仓库源可以有多个 TAG,代表这个仓库源的不同版本,我们使用REPOSITORY:TAG 定义不同 的镜像,如果你不定义镜像的标签版本,docker将默认使用 lastest 镜像! # 可选项 -a: 列出本地所有镜像 -q: 只显示镜像id --digests: 显示镜像的摘要信息
docker search
# 搜索镜像 [root@localhost zyf]# docker search mysql NAME DEscriptION STARS OFFICIAL mysql MySQL is a widely used, open-source relation… 9484 [OK] # docker search 某个镜像的名称 对应DockerHub仓库中的镜像 # 可选项 docker search --filter=stars=50 mysql #列出收藏数不小于50的mysql镜像
docker pull
# 下载镜像 [root@localhost zyf]# docker pull mysql Using default tag: latest latest: Pulling from library/mysql b380bbd43752: Already exists f23cbf2ecc5d: Already exists 30cfc6c29c0a: Already exists b38609286cbe: Already exists 8211d9e66cd6: Already exists 2313f9eeca4a: Already exists 7eb487d00da0: Already exists 4d7421c8152e: Pull complete 77f3d8811a28: Pull complete cce755338cba: Pull complete 69b753046b9f: Pull complete b2e64b0ab53c: Pull complete Digest: sha256:6d7d4524463fe6e2b893ffc2b89543c81dec7ef82fb2020a1b27606666464d87 Status: Downloaded newer image for mysql:latest docker.io/library/mysql:latest 签名 Status: Downloaded newer image for mysql:latest docker.io/library/mysql:latest # 真实位置 # 指定版本下载 [root@localhost zyf]# docker pull mysql:5.7 ....
docker rmi
# 删除镜像 docker rmi -f 镜像id # 删除单个 docker rmi -f 镜像名:tag 镜像名:tag # 删除多个 docker rmi -f $(docker images -qa) # 删除全部1.3 容器命令
说明:有镜像才能创建容器,我们这里使用 centos 的镜像来测试,就是虚拟一个 centos !
新建容器并启动
#命令 docker run [OPTIONS] IMAGE [COMMAND][ARG...] # 常用参数说明 --name="Name" # 给容器指定一个名字 -d # 后台方式运行容器,并返回容器的id! -i # 以交互模式运行容器,通过和 -t 一起使用 -t # 给容器重新分配一个终端,通常和 -i 一起使用 -P # 随机端口映射(大写) -p # 指定端口映射(小结),一般可以有四种写法 ip:hostPort:containerPort ip::containerPort hostPort:containerPort (常用) containerPort #测试 [root@localhost zyf]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.7 938b57d64674 2 weeks ago 448MB mysql latest ecac195d15af 2 weeks ago 516MB hello-world latest feb5d9fea6a5 5 weeks ago 13.3kB centos latest 5d0da3dc9764 6 weeks ago 231MB [root@localhost zyf]# docker run -it centos /bin/bash [root@de779e4c2531 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@de779e4c2531 /]# exit exit
列出所有运行的容器
# 命令 docker ps [OPTIONS] # 常用参数说明 -a # 列出当前所有正在运行的容器 + 历史运行过的容器 -l # 显示最近创建的容器 -n=? # 显示最近n个创建的容器 -q # 静默模式,只显示容器编号。
退出容器
exit # 容器停止退出 ctrl+P+Q # 容器不停止退出
启动停止容器
docker start (容器id or 容器名) # 启动容器 docker restart (容器id or 容器名) # 重启容器 docker stop (容器id or 容器名) # 停止容器 docker kill (容器id or 容器名) # 强制停止容器
删除容器
docker rm 容器id # 删除指定容器 docker rm -f $(docker ps -a -q) # 删除所有容器 docker ps -a -q|xargs docker rm # 删除所有容器1.4 常用其他命令
后台启动容器
# 命令 docker run -d 容器名 # 例子 docker run -d centos # 启动centos,使用后台方式启动 # 问题: 使用docker ps 查看,发现容器已经退出了! # 解释:Docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是那些一直挂起的命 令,就会自动退出。 # 比如,你运行了nginx服务,但是docker前台没有运行应用,这种情况下,容器启动后,会立即自 杀,因为他觉得没有程序了,所以最好的情况是,将你的应用使用前台进程的方式运行启动。
查看日志
# 命令 docker logs -f -t --tail 容器id
查看容器中运行的进程信息,支持 ps 命令参数。
# 命令 docker top 容器id #测试 [root@localhost zyf]# docker top d4a094a7bff3 UID PID PPID C STIME TTY TIME CMD root 3827 3809 0 09:27 pts/0 00:00:00 /bin/bash
查看容器/镜像的元数据
# 命令 docker inspect 容器id # 测试 [root@localhost zyf]# docker inspect d4a094a7bff3 [ { "Id": "d4a094a7bff3a1def2f79898ff068ef8f3acf5cfcc2d144878955b461e380cd1", "Created": "2021-11-02T01:27:44.862468503Z", "Path": "/bin/bash", "Args": [], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 3827, "ExitCode": 0, "Error": "", "StartedAt": "2021-11-02T01:27:45.306178333Z", "FinishedAt": "0001-01-01T00:00:00Z" }, "Image": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6", "ResolvConfPath": "/var/lib/docker/containers/d4a094a7bff3a1def2f79898ff068ef8f3acf5cfcc2d144878955b461e380cd1/resolv.conf", "HostnamePath": "/var/lib/docker/containers/d4a094a7bff3a1def2f79898ff068ef8f3acf5cfcc2d144878955b461e380cd1/hostname", "HostsPath": "/var/lib/docker/containers/d4a094a7bff3a1def2f79898ff068ef8f3acf5cfcc2d144878955b461e380cd1/hosts", "LogPath": "/var/lib/docker/containers/d4a094a7bff3a1def2f79898ff068ef8f3acf5cfcc2d144878955b461e380cd1/d4a094a7bff3a1def2f79898ff068ef8f3acf5cfcc2d144878955b461e380cd1-json.log", "Name": "/awesome_goldberg", "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/6035182b396cb8e78bcbea0ce7bdb0fbfcb1014942859760ffbc1a5c628bb208-init/diff:/var/lib/docker/overlay2/81c241c44b63080afc4a4724c53b96fc78f94955a616f6a04512cafb4acc74ed/diff", "MergedDir": "/var/lib/docker/overlay2/6035182b396cb8e78bcbea0ce7bdb0fbfcb1014942859760ffbc1a5c628bb208/merged", "UpperDir": "/var/lib/docker/overlay2/6035182b396cb8e78bcbea0ce7bdb0fbfcb1014942859760ffbc1a5c628bb208/diff", "WorkDir": "/var/lib/docker/overlay2/6035182b396cb8e78bcbea0ce7bdb0fbfcb1014942859760ffbc1a5c628bb208/work" }, "Name": "overlay2" }, "Mounts": [], "Config": { "Hostname": "d4a094a7bff3", "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": "20210915", "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": "6d64a7b27ae0971f37a57c4c469988374e5504fde3b812a8c439e793420a3c43", "HairpinMode": false, "linkLocalIPv6Address": "", "linkLocalIPv6PrefixLen": 0, "Ports": {}, "SandboxKey": "/var/run/docker/netns/6d64a7b27ae0", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "7d9476b5524fc79aa470ec203a3238528b0b4f6d1464ebbf4a12a695f484e60b", "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": "4abbe1b9075b0ded58b1419e69ad0fb40c5711bd85ea8e0e7b3207e359029ac7", "EndpointID": "7d9476b5524fc79aa470ec203a3238528b0b4f6d1464ebbf4a12a695f484e60b", "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 } } } } ]
进入正在运行的容器
# 命令1 docker exec -it 容器id bashShell #测试1 [root@localhost zyf]# docker ps ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a094a7bff3 centos "/bin/bash" 6 minutes ago Up 6 minutes awesome_goldberg [root@localhost zyf]# docker exec -it d4a094a7bff3 /bin/bash [root@d4a094a7bff3 /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 01:27 pts/0 00:00:00 /bin/bash root 15 0 0 01:34 pts/1 00:00:00 /bin/bash root 29 15 0 01:34 pts/1 00:00:00 ps -ef [root@d4a094a7bff3 /]# # 命令2 docker attach 容器id [root@localhost zyf]# docker exec -it d4a094a7bff3 /bin/bash [root@d4a094a7bff3 /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 01:27 pts/0 00:00:00 /bin/bash root 15 0 0 01:34 pts/1 00:00:00 /bin/bash root 31 0 0 01:36 pts/2 00:00:00 /bin/bash root 45 31 0 01:36 pts/2 00:00:00 ps -ef [root@d4a094a7bff3 /]# # 区别 # exec 是在容器中打开新的终端,并且可以启动新的进程 # attach 直接进入容器启动命令的终端,不会启动新的进程
从容器内拷贝文件到主机上
# 命令 docker cp 容器id:容器内路径 目的主机路径 # 测试 # 容器内执行,创建一个文件测试 [root@d4a094a7bff3 home/]# cd /home [root@d4a094a7bff3 home/]# touch f1 [root@d4a094a7bff3 home/]# ls f1 [root@d4a094a7bff3 home/]# exit exit # linux复制查看,是否复制成功 [root@localhost zyf]# docker cp c8530dbbe3b4:/home/f1 /home [root@localhost zyf]# cd /home [root@localhost zyf home]# ls f1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)