赞
踩
目录
1.1 docker pull 镜像名称 [:tag] 拉取镜像
1.2 docker search 镜向名称 (查询某个镜像)
1.5 docker system df 查看所有镜像容器所占空间
1.7 docker restart "容器ID" 重启容器
1.1 docker pull 镜像名称 [:tag] 拉取镜像
可以看到我在后面加上了[:tag],这个是版本号的意思,因为同一个镜像也许会有多种不同的版本,如果你加,默认就是给你拉取 latest最新版的,这一点要记住哦!
如下所示,我拉取 redis 镜像,它默认就是下载的最新的。
- [root@localhost docker]# docker pull redis
- Using default tag: latest
- latest: Pulling from library/redis
- a378f10b3218: Pull complete
- b266cd8112a6: Pull complete
- 7ba86e6448de: Pull complete
- 3aeb7c9e9a5f: Pull complete
- de3be2a98bda: Pull complete
- 4f4fb700ef54: Pull complete
- 98e18d21aa3b: Pull complete
- Digest: sha256:1f1bd4adf5dabf173b235ba373faef55f3ad53394791d1473763bf5a2181780d
- Status: Downloaded newer image for redis:latest
- docker.io/library/redis:latest
1.2 docker search 镜向名称 (查询某个镜像)
如下,我运行此命令查询 nginx 镜像都有哪些,返回了一大堆
- [root@localhost ~]# docker search nginx
- NAME DESCRIPTION STARS OFFICIAL AUTOMATED
- nginx Official build of Nginx. 19145 [OK]
- unit Official build of NGINX Unit: Universal Web … 15 [OK]
- nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles 127
- nginx/nginx-ingress NGINX and NGINX Plus Ingress Controllers fo… 82
- nginx/nginx-prometheus-exporter NGINX Prometheus Exporter for NGINX and NGIN… 33
- nginxinc/nginx-s3-gateway Authenticating and caching gateway based on … 2
- nginx/unit This repository is retired, use the Docker o… 64
- nginx/nginx-ingress-operator NGINX Ingress Operator for NGINX and NGINX P… 1
- nginxinc/amplify-agent NGINX Amplify Agent docker repository 1
- nginx/nginx-quic-qns NGINX QUIC interop 1
- nginxinc/ingress-demo Ingress Demo 4
- nginxproxy/nginx-proxy Automated Nginx reverse proxy for docker con… 115
- nginxproxy/acme-companion Automated ACME SSL certificate generation fo… 125
- bitnami/nginx Bitnami nginx Docker Image 176 [OK]
- bitnami/nginx-ingress-controller Bitnami Docker Image for NGINX Ingress Contr… 30 [OK]
- ubuntu/nginx Nginx, a high-performance reverse proxy & we… 102
- nginxinc/nginmesh_proxy_debug 0
- nginxproxy/docker-gen Generate files from docker container meta-da… 12
- nginxinc/mra-fakes3 0
- kasmweb/nginx An Nginx image based off nginx:alpine and in… 6
- rancher/nginx-ingress-controller 11
- nginxinc/ngx-rust-tool 0
- nginxinc/mra_python_base 0
- nginxinc/nginmesh_proxy_init 0
如果有同学觉得比较多,我们可以在 search 后面加后缀 --limit N 显示几个,如下 --limit 5 表示显示排行榜前5个。
- [root@localhost ~]# docker search --limit 5 redis
- NAME DESCRIPTION STARS OFFICIAL AUTOMATED
- redis Redis is an open source key-value store that… 12425 [OK]
- redislabs/redisearch Redis With the RedisSearch module pre-loaded… 59
- redislabs/redisinsight RedisInsight - The GUI for Redis 91
- redis/redis-stack-server redis-stack-server installs a Redis server w… 57
- redislabs/rebloom A probablistic datatypes module for Redis 24 [OK]
最上面的NAME,DESCRIPT,STARTS,OFFICIAL,AUTOMATED是参数,这些参数的含义如下图中所示,一般情况下选择第一个镜像就可以了,第一个通常是官方镜像。
1.3 docker images 列出当前主机上所有镜像
刚才我已经拉取了一个 redis 镜像,下面我们使用这个命令查看一下,可以看到已经查询到了
TAG:镜像版本;
IMAGE ID:镜像ID;
SIZE:镜像大小;
- [root@localhost docker]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- redis latest e579380d4317 6 days ago 138MB
1.4 docker rmi 镜像ID 删除镜像
我将刚才拉取下来的 redis 镜像再删除,然后 docker images 重新查看,可以看到,此时已经没有镜像了,redis 镜像已经没有了。
还有一点需要注意,后面的镜像ID可以写多个,表示删除多个。
- [root@localhost docker]# docker rmi e579380d4317
- Untagged: redis:latest
- Untagged: redis@sha256:1f1bd4adf5dabf173b235ba373faef55f3ad53394791d1473763bf5a2181780d
- Deleted: sha256:e579380d43178bcee8c8b219063605f45e035238335db5d3b3e95c5e38145700
- Deleted: sha256:b1f68d2cfdde30e7bfe3002347c37bf6b872216fa8faaa612d06c9ec59668021
- Deleted: sha256:562c06f2b95aea14af2496f9d4b9206efd39680b547232a7d4077137eb615d04
- Deleted: sha256:28a572fe2e73a8bf90e92ed1a072c9227d019cdc202c2c88cd34c44f7ab45eee
- Deleted: sha256:02b286a9390e2cd90268def73af145e1d09ac52aaa664d83bd0930373b2d62e2
- Deleted: sha256:3d1901f414d075be1012ec6ba638b0b2005c79d414f677e8317f3fb7a1cab474
- Deleted: sha256:3441e2762aa905a8939c32d5ac0d80e7f7222773fa1095825bfe9da360859be9
- Deleted: sha256:cb4596cc145400fb1f2aa56d41516b39a366ecdee7bf3f9191116444aacd8c90
-
- [root@localhost docker]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
1.5 docker system df 查看所有镜像容器所占空间
上面我说到了 docker images 可以查看所有镜像,而 docker system df 则可以帮助我们查看所有镜像/容器/数据卷占用的空间(这里补充一句,各个镜像独立运行,相互隔离,每个运行的镜像就是一个容器)
刚才我拉取了三个镜像,如下所示,运行命令之后,docker 就会把容器,镜像,数据卷各自占用的比例列出,这里我一个都没有运行,全都只是拉取下来的景象,所以占比为100%
- [root@localhost docker]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- nginx latest 593aee2afb64 6 hours ago 187MB
- redis latest e579380d4317 6 days ago 138MB
- mysql latest ae2502152260 2 months ago 574MB
- [root@localhost docker]#
- [root@localhost docker]# docker system df
- TYPE TOTAL ACTIVE SIZE RECLAIMABLE
- Images 3 0 823.7MB 823.7MB (100%)
- Containers 0 0 0B 0B
- Local Volumes 0 0 0B 0B
- Build Cache 0 0 0B 0B
1.6 docker ps 查看正在运行的镜像列表
如下,执行该命令就会显示出当前 docker 容器中所有正在运行的镜像;
后面加上一个 -a 查看所有镜像容器;
1.7 docker restart "容器ID" 重启容器
镜像运行后形成容器,但如果我们把虚拟机关闭,容器也就随着关闭。如果没有设置容器随着docker 运行启动,那么下次我们再重新运行此容器,所以 "docker ps -a" 和 "docker restart 容器ID"这两条命令通常可以搭配使用;
运行此命令后,返回容器ID就说明容器已经重新启动;
1.8 docker stop "镜像ID" 停止容器
1.9 docker rm "镜像ID" 删除镜像
注意正在运行的容器无法删除,需要先 stop 停止而后才可以删除
1.10 docker kill "强制删除容器"
当一个容器无法停止时,可以使用此命令强制停止容器并将其删除。
这也算是一个小的面试题,通过上面的学习,我们学会了使用 docker images 查看当前所有已有的docker 镜像。
但有些时候,查询出来的镜像的名字和版本都是none,只有镜像ID和大小,如下图。也就是说这个镜像我们不知道它是什么东西,不能确定,这种镜像称之为虚悬镜像。
这种镜像通常没什么用,建议删除,有时候是因为镜像下载过程中出现了问题,有时候是因为构建镜像时出现了问题。
systemctl start docker
如下,在 Linux 操作系统中,只要没有报错就代表启动成功
[zhangsir@localhost ~]$ systemctl start docker
systemctl status docker
刚才启动成功,查看一下运行状态,如下所示,Active为running表示正在运行中
- [root@localhost ~]# systemctl status docker
- ● docker.service - Docker Application Container Engine
- Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
- Active: active (running) since Wed 2023-10-25 11:33:51 CST; 6s ago
- Docs: https://docs.docker.com
- Main PID: 9895 (dockerd)
- Tasks: 7
- Memory: 71.2M
- CGroup: /system.slice/docker.service
- └─9895 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
-
- Oct 25 11:33:50 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
- Oct 25 11:33:50 localhost.localdomain dockerd[9895]: time="2023-10-25T11:33:50.961478252+08:00" level=info msg="Starting up"
- Oct 25 11:33:51 localhost.localdomain dockerd[9895]: time="2023-10-25T11:33:51.003124975+08:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
- Oct 25 11:33:51 localhost.localdomain dockerd[9895]: time="2023-10-25T11:33:51.003454992+08:00" level=info msg="Loading containers: start."
- Oct 25 11:33:51 localhost.localdomain dockerd[9895]: time="2023-10-25T11:33:51.063846884+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
- Oct 25 11:33:51 localhost.localdomain dockerd[9895]: time="2023-10-25T11:33:51.086338615+08:00" level=info msg="Loading containers: done."
- Oct 25 11:33:51 localhost.localdomain dockerd[9895]: time="2023-10-25T11:33:51.109714791+08:00" level=info msg="Docker daemon" commit=a61e2b4 graphdriver=overlay2 version=24.0.5
- Oct 25 11:33:51 localhost.localdomain dockerd[9895]: time="2023-10-25T11:33:51.109756158+08:00" level=info msg="Daemon has completed initialization"
- Oct 25 11:33:51 localhost.localdomain dockerd[9895]: time="2023-10-25T11:33:51.129061470+08:00" level=info msg="API listen on /run/docker.sock"
- Oct 25 11:33:51 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
systemctl restart docker
重启 docker,命令与启动docker相似,加了一个前缀 "re",只要没有报错就代表重启成功,在查询一下状态,也显示正在运行中
- [root@localhost ~]# systemctl restart docker
- [root@localhost ~]#
- [root@localhost ~]# systemctl status docker
- ● docker.service - Docker Application Container Engine
- Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
- Active: active (running) since Wed 2023-10-25 11:35:37 CST; 1min 21s ago
- Docs: https://docs.docker.com
- Main PID: 10094 (dockerd)
- Tasks: 7
- Memory: 30.2M
- CGroup: /system.slice/docker.service
- └─10094 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
-
- Oct 25 11:35:36 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.065508073+08:00" level=info msg="Starting up"
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.082201618+08:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.082323526+08:00" level=info msg="Loading containers: start."
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.136339904+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.153493234+08:00" level=info msg="Loading containers: done."
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.161727804+08:00" level=info msg="Docker daemon" commit=a61e2b4 graphdriver=overlay2 version=24.0.5
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.161762409+08:00" level=info msg="Daemon has completed initialization"
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.175532811+08:00" level=info msg="API listen on /run/docker.sock"
- Oct 25 11:35:37 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
-
systemctl stop docker
在停止之后,它给了一个警告 "Stopping docker.service, but it can still be activated by:
docker.socket"
翻译过来就是 "停止docker.service,但它仍然可以由docker.socket激活"。
查看状态,此时docker已经停止,处于 dead 死亡状态。
- [root@localhost ~]# systemctl stop docker
- Warning: Stopping docker.service, but it can still be activated by:
- docker.socket
- [root@localhost ~]# systemctl status docker
- ● docker.service - Docker Application Container Engine
- Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
- Active: inactive (dead) since Wed 2023-10-25 11:38:17 CST; 1min 20s ago
- Docs: https://docs.docker.com
- Process: 10094 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=0/SUCCESS)
- Main PID: 10094 (code=exited, status=0/SUCCESS)
-
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.136339904+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.153493234+08:00" level=info msg="Loading containers: done."
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.161727804+08:00" level=info msg="Docker daemon" commit=a61e2b4 graphdriver=overlay2 version=24.0.5
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.161762409+08:00" level=info msg="Daemon has completed initialization"
- Oct 25 11:35:37 localhost.localdomain dockerd[10094]: time="2023-10-25T11:35:37.175532811+08:00" level=info msg="API listen on /run/docker.sock"
- Oct 25 11:35:37 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
- Oct 25 11:38:17 localhost.localdomain systemd[1]: Stopping Docker Application Container Engine...
- Oct 25 11:38:17 localhost.localdomain dockerd[10094]: time="2023-10-25T11:38:17.418003207+08:00" level=info msg="Processing signal 'terminated'"
- Oct 25 11:38:17 localhost.localdomain dockerd[10094]: time="2023-10-25T11:38:17.418822780+08:00" level=info msg="Daemon shutdown complete"
- Oct 25 11:38:17 localhost.localdomain systemd[1]: Stopped Docker Application Container Engine.
systemctl enable docker
运行这个命令之后,以后只要你启动了 Linux 服务器,Doker就会跟着启动,不需要每次都使用上面的启动命令
- [root@localhost ~]# systemctl enable docker
- Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
docker --help
运行该命令,docker会给我们返回所有可执行命令,后面还有它的英文解释,大多也都不常用,同学们可以用到哪个查哪个。
- [root@localhost ~]# docker --help
-
- Usage: docker [OPTIONS] COMMAND
-
- A self-sufficient runtime for containers
-
- Common Commands:
- run Create and run a new container from an image
- exec Execute a command in a running container
- ps List containers
- build Build an image from a Dockerfile
- pull Download an image from a registry
- push Upload an image to a registry
- images List images
- login Log in to a registry
- logout Log out from a registry
- search Search Docker Hub for images
- version Show the Docker version information
- info Display system-wide information
-
- Management Commands:
- builder Manage builds
- buildx* Docker Buildx (Docker Inc., v0.11.2)
- compose* Docker Compose (Docker Inc., v2.20.2)
- container Manage containers
- context Manage contexts
- image Manage images
- manifest Manage Docker image manifests and manifest lists
- network Manage networks
- plugin Manage plugins
- system Manage Docker
- trust Manage trust on Docker images
- volume Manage volumes
-
- Swarm Commands:
- swarm Manage Swarm
-
- Commands:
- attach Attach local standard input, output, and error streams to a running container
- commit Create a new image from a container's changes
- cp Copy files/folders between a container and the local filesystem
- create Create a new container
- diff Inspect changes to files or directories on a container's filesystem
- events Get real time events from the server
- export Export a container's filesystem as a tar archive
- history Show the history of an image
- import Import the contents from a tarball to create a filesystem image
- inspect Return low-level information on Docker objects
- kill Kill one or more running containers
- load Load an image from a tar archive or STDIN
- logs Fetch the logs of a container
- pause Pause all processes within one or more containers
- port List port mappings or a specific mapping for the container
- rename Rename a container
- restart Restart one or more containers
- rm Remove one or more containers
- rmi Remove one or more images
- save Save one or more images to a tar archive (streamed to STDOUT by default)
- start Start one or more stopped containers
- stats Display a live stream of container(s) resource usage statistics
- stop Stop one or more running containers
- tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
- top Display the running processes of a container
- unpause Unpause all processes within one or more containers
- update Update configuration of one or more containers
- wait Block until one or more containers stop, then print their exit codes
- Global Options:
- --config string Location of client config files (default "/root/.docker")
- -c, --context string Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker context use")
- -D, --debug Enable debug mode
- -H, --host list Daemon socket to connect to
- -l, --log-level string Set the logging level ("debug", "info", "warn", "error", "fatal") (default "info")
- --tls Use TLS; implied by --tlsverify
- --tlscacert string Trust certs signed only by this CA (default "/root/.docker/ca.pem")
- --tlscert string Path to TLS certificate file (default "/root/.docker/cert.pem")
- --tlskey string Path to TLS key file (default "/root/.docker/key.pem")
- --tlsverify Use TLS and verify the remote
- -v, --version Print version information and quit
- Run 'docker COMMAND --help' for more information on a command.
- For more help on how to use Docker, head to https://docs.docker.com/go/guides/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。