本文参考《从Docker到Kubernetes入门与实战》(罗利民)
1. 查看版本/获取帮助
1.1 查看版本
docker version
运行结果如下:
Client:
Cloud integration: v1.0.23
Version: 20.10.14
API version: 1.41
Go version: go1.16.15
Git commit: a224086
Built: Thu Mar 24 01:53:11 2022
OS/Arch: windows/amd64
Context: default
Experimental: true
Server: Docker Desktop 4.7.0 (77141)
Engine:
Version: 20.10.14
API version: 1.41 (minimum version 1.12)
Go version: go1.16.15
Git commit: 87a90dc
Built: Thu Mar 24 01:46:14 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.5.11
GitCommit: 3df54a852345ae127d1fa3092b95168e4a88e2f8
runc:
Version: 1.0.3
GitCommit: v1.0.3-0-gf46b6ba
docker-init:
Version: 0.19.0
GitCommit: de40ad0
1.2 获取帮助
docker help
2. 基本管理命令
2.1 搜索镜像文件
docker search imagename
例如:Ubuntu
docker search ubuntu
运行结果如下:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 14048 [OK]
websphere-liberty WebSphere Liberty multi-architecture images … 283 [OK]
ubuntu-upstart DEPRECATED, as is Upstart (find other proces… 112 [OK]
neurodebian NeuroDebian provides neuroscience research s… 88 [OK]
open-liberty Open Liberty multi-architecture images based… 51 [OK]
ubuntu-debootstrap DEPRECATED; use "ubuntu" instead 46 [OK]
ubuntu/nginx Nginx, a high-performance reverse proxy & we… 40
ubuntu/mysql MySQL open source fast, stable, multi-thread… 29
ubuntu/apache2 Apache, a secure & extensible open-source HT… 26
ubuntu/prometheus Prometheus is a systems and service monitori… 23
kasmweb/ubuntu-bionic-desktop Ubuntu productivity desktop for Kasm Workspa… 22
ubuntu/squid Squid is a caching proxy for the Web. Long-t… 18
ubuntu/postgres PostgreSQL is an open source object-relation… 15
ubuntu/bind9 BIND 9 is a very flexible, full-featured DNS… 13
ubuntu/redis Redis, an open source key-value store. Long-… 9
ubuntu/grafana Grafana, a feature rich metrics dashboard & … 5
ubuntu/prometheus-alertmanager Alertmanager handles client alerts from Prom… 5
ubuntu/memcached Memcached, in-memory keyvalue store for smal… 4
ubuntu/telegraf Telegraf collects, processes, aggregates & w… 3
circleci/ubuntu-server This image is for internal use 3
ubuntu/cortex Cortex provides storage for Prometheus. Long… 2
ubuntu/cassandra Cassandra, an open source NoSQL distributed … 1
bitnami/ubuntu-base-buildpack Ubuntu base compilation image 0 [OK]
snyk/ubuntu A base ubuntu image for all broker clients t… 0
rancher/ubuntuconsole
2.2 镜像下载到本地
docker pull ubuntu ##官方镜像库
docker pull 网址/镜像 ##非官方镜像库
运行结果:
Using default tag: latest
latest: Pulling from library/ubuntu
e0b25ef51634: Pull complete
Digest: sha256:9101220a875cee98b016668342c489ff0674f247f6ca20dfc91b91c0f28581ae
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
2.3 查看镜像
docker images
运行结果:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 825d55fb6340 6 days ago 72.8MB
2.4 删除镜像
docker rmi ubuntu
运行结果:
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:9101220a875cee98b016668342c489ff0674f247f6ca20dfc91b91c0f28581ae
Deleted: sha256:825d55fb6340083b06e69e02e823a02918f3ffb575ed2a87026d4645a7fd9e1b
Deleted: sha256:c5ec52c98b3193052e15d783aca2bef10d8d829fa0d58fedfede511920b8f997
2.5 查看镜像
docker inspect ubuntu
2.6 构建镜像
docker run -i -t ubuntu /bin/bash
运行成功显示如下:
root@4f7acb30c5dd:/#
输入命令:
apt-get -y update
Get:1 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
...
在容器中安装apache,以使用这个容器作为web服务。构建容器并将其保存,这样就不需要每次创建新的容器再添加apache:
apt-get install -y apache2
完成之后,构建镜像
先用命令找到刚才使用的容器:
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4f7acb30c5dd ubuntu "/bin/bash" 57 minutes ago Exited (0) 23 seconds ago compassionate_kare
其中第一列为容器ID,使用该ID创建新镜像:
docker commit 4f7acb30c5dd demo/webserver
sha256:caa76b3ef1cebe4b16f106edc7d15eff26ac78b71efacb3a4e6bd4552f29c130
查看镜像:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
demo/webserver latest caa76b3ef1ce 42 seconds ago 221MB
ubuntu latest 825d55fb6340 6 days ago 72.8MB
2.7 标签管理
docker tag ubuntu tst/ubuntu
REPOSITORY TAG IMAGE ID CREATED SIZE
demo/webserver latest caa76b3ef1ce 9 minutes ago 221MB
ubuntu latest 825d55fb6340 6 days ago 72.8MB
tst/ubuntu latest 825d55fb6340 6 days ago 72.8MB
以上操作共用一个存储空间,只是名称不同,同时也可以修改镜像标签:
docker tag demo/webserver demo/webserver:v2.0
查看镜像:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
demo/webserver latest caa76b3ef1ce 11 minutes ago 221MB
demo/webserver v2.0 caa76b3ef1ce 11 minutes ago 221MB
ubuntu latest 825d55fb6340 6 days ago 72.8MB
httpd latest 118b6abfbf55 2 weeks ago 144MB