docker 常用命令
一、镜像
1.查看镜像列表
列出本地主机上的镜像
docker images
各个选项说明:
- REPOSITORY:表示镜像的仓库源
- TAG:镜像的标签,同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
2.查看镜像元素
docker inspect 镜像id
3.搜索镜像
我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/
我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个 httpd 的镜像来作为我们的 web 服务。我们可以通过 docker search 命令搜索 php 来寻找适合我们的镜像。
docker search 镜像名
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
4.获取镜像
使用命令 docker pull 来下载镜像。
docker pull php
5.推送镜像
使用docker push 推送镜像到远程仓库,将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker push [OPTIONS] NAME[:TAG]
OPTIONS说明:
- --disable-content-trust :忽略镜像的校验,默认开启
6.运行镜像
使用 docker run 命令运行镜像,启动容器
docker run -it php-fpm-supervisor:v7.2-20200516 /bin/bash
7.删除镜像
镜像删除使用 docker rmi 命令,或者docker images rm
doctor rmi 镜像名/镜像id
doctor images rm 镜像名/镜像id
8.保存镜像
使用docker save保存镜像
docker save imgageId > php-fpm-v7.2-20201022.tar
但是推荐下面打包镜像的方法,这样可以避免在导入镜像的时候,镜像名字为none问题
docker save -o php-fpm-v7.2-20201022.tar sihe/php-fpm:v7.2-20201022
9.导入镜像
使用docker load 导入镜像
docker load < php-fpm-v7.2-20201022.tar
10.制作镜像
如果从 docker 镜像仓库中下载的镜像不能满足我们的需求时,可以通过以下两种方式对镜像进行更改。
- 1、从已经创建的容器中更新镜像,并且提交这个镜像,通过docker commit 命令 请参考下面的更新镜像
- 2、使用docker build命令,通过创建 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
11.更新镜像
使用镜像启动容器后(查看运行镜像),在运行的容器内可以进行软件安装或者更新,然后在完成操作之后,输入 exit 命令来退出这个容器。
此时 ID 为 f4ba1233d286 的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit 来提交容器副本。
docker commit -m="update php ext" -a="sihe" f4ba1233d286 sihe/php-fpm-supervisor:v2.0
各个参数说明:
- -m: 提交的描述信息
- -a: 指定镜像作者
- -p 在commit时,将容器暂停
- -c :使用Dockerfile指令来创建镜像;
- f4ba1233d286:容器 ID
- sihe/php-fpm-supervisor:v2.0: 指定要创建的目标镜像名
基于容器制作镜像时,有时候想要改动镜像参数元素
首先停止容器,不然无法修改配置文件
配置文件路径为:/var/lib/docker/containers/容器ID
在该目录下找到一个文件 hostconfig.json
,比如修改RestartPolicy,找到该文件中关键字 RestartPolicy
修改前配置:"RestartPolicy":{"Name":"no","MaximumRetryCount":0}
修改后配置:"RestartPolicy":{"Name":"always","MaximumRetryCount":0}
最后启动容器,然后进行镜像制作
12.设置镜像命名、标签
可以使用 docker tag 命令,为镜像添加一个新的标签。 docker tag [镜像id] [新镜像名称]:[新镜像标签]
docker tag 2f915d5a2339 sihe/php-pgsql-pdf:v2.0
二、容器
查看容器列表
使用docker ps -a,查看所有的容器命令
docker ps -a
查看容器的底层信息
使用docker inspect,查看容器的元数据信息
docker inspect [容器id]
查看容器状态
使用docker stats 查看
docker stats [OPTIONS] [CONTAINER...]
查看容器日志
使用docker logs查看日志
docker logs [OPTIONS] CONTAINER
备注:参数说明
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
启动容器
使用docker run 启动一个容器,使用 镜像启动一个容器,参数为以命令行模式进入该容器:
docker run -it php /bin/bash
参数说明:
- -i: 交互式操作。
- -t: 终端。
- php: php 镜像。
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
要退出终端,直接输入 exit:
后台运行一个容器,在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
docker run -itd php /bin/bash
注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec
进入容器
在使用 -d 参数时,容器启动后会进入后台。想要进入容器,可以通过以下指令进入:
- docker attach
- docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
attach 命令
下面演示了使用 docker attach 命令。
docker attach [OPTIONS] [容器id]
推荐使用 docker exec
docker exec -it [容器id] /bin/bash
停止容器
使用docker stop命令,停止容器
docker stop [容器id]
启动一个停止的容器
docker start [容器id]
重启容器
使用docker restart,重启容器
docker restart [容器id]
删除容器
使用docker rm 命令,删除容器使
docker rm -f [容器id]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~