文章目录

  • 1. 镜像
  • 1. 拉取镜像
  • 2. 查看镜像
  • 3. 搜索Docker Hub
  • 4. 查看镜像层
  • 5. 删除镜像
  • 2. 容器
  • 1. 启动一个容器
  • 2. 暂停一个容器
  • 2. 查看容器
  • 3. 停止容器运行,并删除容器
  • 4. 重启策略


1. 镜像

1. 拉取镜像

docker image pull <repository>:<tag>

例如:
docker image pull alpine:latest

如果不加tag标签,则会默认拉取标签为latest 的镜像

2. 查看镜像

查看docker中的镜像有哪些

docker image ls

查看镜像的SHA256签名
docker image ls --digests

过滤docker image列表

使用 --filter 过滤

过滤的参数有:

dangling true/flase: 是否返回悬虚镜像,true,返回悬虚镜像;false,返回非悬虚镜像
before 镜像名称/ID:返回该镜像之前的所有镜像
since 镜像名称/ID: 返回该镜像之后的所有镜像
label 标注名:  根据标签名或者值对标签进行过滤
reference: 其它过滤方式

例如:

筛选所有悬虚镜像
docker image ls --filter dangling=true

筛选所有标签为latest的镜像
docker image ls --filter reference="*:latest"

3. 搜索Docker Hub

搜索所有包含 alpine 的仓库镜像

docker search alpine

查询结果中既包括官方的镜像,也包括非官方的惊醒,过滤出来官方的镜像

docker search alpine --filter "is-official=true"

search默认返回25行结果,可以通过 --limit 指令增加返回内容行数,最大为100行

docker search alpine --limit 100

4. 查看镜像层

查看镜像层

docker image inspect 镜像名

例如:

docker image inspect alpine

一个镜像可能会有多个镜像层构成,docker引擎会维护整个镜像的镜像层对外展示为一个镜像。

例如:alpine/git 镜像,其中就包含了3个镜像层,而alpine镜像只有一个镜像层。

多个镜像之间可以有共享的惊醒层,因为这样可以有效的节省空间并且提升性能。

例如:alpine 镜像,和alpine/git 镜像,就共用了一层镜像层

5. 删除镜像

删除镜像

docker image rm 镜像名/ID

若删除的镜像上有正在运行的容器,则会删除失败

删除所有镜像:windows中需要在PowerShell中执行

docker image rm $(docker image ls -q) -f

2. 容器

1. 启动一个容器

docker container run <options> <image>:<tag> <app>

例如:
docker container run -it alpine sh

启动容器的时候,指定名称为percy
docker container run --name percy -it alpine sh

按Ctrl + PQ 键会退出容器,但是并不会终止容器的运行

启动容器后后台运行服务:

docker container run -d --name webserver -p 80:8080 nigelpoulton/pluralsight-docker-ci

-d:指定后台运行服务

-p 80:8080:指定本地80端口,映射容器的8080端口

2. 暂停一个容器

暂停容器:

docker container pause 容器名/容器ID

2. 查看容器

查看正在运行的容器命令:

docker container ls

查看所有的容器:

docker container ls -a

想要重新连接正在运行的容器,可以通过命令重新连接:

docker container exec -it 容器名称/ID app

例如:
docker container exec -it focused_kalam sh

3. 停止容器运行,并删除容器

停止容器运行
docker container stop 容器ID/容器名

删除容器
docker container rm 容器ID/容器名

强制删除所有容器
docker container rm $(docker container ls -aq) -f

4. 重启策略

重启策略应用于每个容器,可以作为参数被强制传入docker-container run命令中,或者在Compose文件中声明(在使用Docker Compose以及Docker Stacks的情况下)。

容器支持的重启策略包括always、unless-stopped和on-failed。

  • always:当容器停止时,总是会重启
  • unless-stopped:除非是stopped状态,否则就会重启
  • on-failed:当退出容器且返回值不是0的时候,就会重启

启动时当作参数传入:

docker container run --restart always -it alpine sh