docker的常用命令
1.镜像命令
1.1 docker images:查看主机上的所有本地镜像
常用参数:
-a, --all:列出所有镜像
-q, --quiet:只显示镜像的id
docker images -a docker images -q docker images -aq #列出所有镜像的id
1.2 docker rmi:删除镜像
- 删除镜像的时候要确保没有容器引用该镜像
- 如果有容器引用的镜像先删除容器后删除镜像
- 删除容器的时候如果正常运行请先停止容器运行
即在删除容器前要先停止容器,先删容器再删镜像
-f:强制删除
docker rmi -f 镜像id #删除指定镜像 docker rmi -f 镜像id 镜像id 镜像id ... # 删除多个镜像 docker rmi -f $(docker iamges -aq) # 删除全部镜像
1.3 docker load:导入镜像
docker load <镜像名.tar
1.4 镜像重命名
docker tag 镜像旧名称 镜像新名称
1.5 docker inspect:查看镜像/容器的详细信息
docker inspect 镜像/容器名
2.容器命令
2.1 docker run:启动容器
常用参数:
-d:后台运行容器,并返回容器ID
-i:以交互式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端
-p:端口映射,格式为 主机(宿主)端口:容器端口
--name="name":为容器指定一个名称
--dns 8.8.8.8:为容器指定一个dns服务器,默认与宿主一致
--dns-search domain:为容器指定一个DNS域名,默认与宿主一致
-h "hostname":指定容器的hostname
-e arg="value":设置环境变量
-env-file=[]:从指定文件读入环境变量
--cpuset="0-2" or --cpuset="0,1,2":绑定容器到指定的cpu运行
-m:设置容器使用内存最大值
--net="bridge":指定容器的网络连接类型,支持bridge/host/none/container四种类型
--link=[]:添加链接到另外一个容器
--expose=[]:开放一个端口或一组端口,宿主机使用随机端口映射到开放的端口
容器是用来管理进程的,在虚拟机的宿主机中,执行ps是看不到虚拟机内部的进程的。在容器的宿主机中,执行ps是可以看到容器内部执行的进程的。从本质上看,容器仅仅是在宿主机中把进程启动起来,并且进行资源隔离。
2.2 容器退出
- 使用ctrl+d或exit命令,容器直接退出,即容器停止并退出。
- 使用ctrl+q+p,容器退出但会继续在后台运行即容器退出但不停止。
2.3 docker ps:查看所有运行中的容器
常用参数:
-a:显示所有容器,包括当前没有运行的容器
-l:显示最近创建的容器
-n=N:显示最近创建的N个容器
-q:只显示容器ID
--no-trunc:不截断输出
docker ps –a # 查看所有容器 docker ps –qa # 显示所有容器的id,常用于批量删除容器
2.4 启动、停止容器
docker stop 容器id # 停止容器 可添加参数-t, -t 15表示15秒后停止容器 只写-t默认10s docker start 容器id # 启动容器 docker restart 容器id # 重启容器 docker pause 容器id # 暂停容器 docker unpause 容器id # 恢复容器 docker kill 容器id # 强制停止容器
2.5 docker exec:进入容器
对于后台执行的容器,可以进入容器查看
docker exec -it 容器id /bin/bash #进入容器后开启一个新的终端,可以在里面操作
2.6 docker rm:删除容器
docker rm 容器id # 删除指定的容器(不能删除正在运行的容器,如果要删除加-f) docker rm $(docker ps -qa) # 删除所有容器,不包括正在运行的 docker rm -f $(docker ps -aq) # 删除所有容器,包括正在运行的 docker ps -a -a|xargs docker rm # 删除所有容器
2.7 docker cp:拷贝宿主机/容器内的文件
该命令可以把容器内的文件拷贝出来,或者把宿主机文件拷贝进容器。
docker cp 容器id:容器内路径 宿主机目的路径 #从容器内拷贝到宿主机上 docker cp 宿主机内路径 容器id:容器目的路径 #从宿主机上拷贝到容器内 docker cp coco:/tmp/info.txt . #拷贝容器coco的tmp文件夹下的info.txt到宿主机的当前位置
3.创建docker镜像
使用docker build命令和Dockerfile文件创建
3.1 Dockerfile文件
Dockerfile由一行行命令语句组成,并且支持以#开头的注释行
一般Dockerfile分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令
#基于python3.6.8镜像 FROM python:3.6.8 #制作者信息 MAINTAINER docker_user docker_user@email.com #更新pip #RUN指令:对镜像执行命令行命令 RUN pip install --upgrade pip #工作目录 WORKDIR /code ADD . /code #pip安装依赖包 RUN pip install -r requirements.txt #传递参数 ENTRYPOINT ["pytest"] #CMD指令:容器启动命令 #这里是在容器启动时通过python运行main.py CMD["python","./src/main.py"]
3.2 docker build命令
docker build命令用于使用Dockerfile创建镜像
常用参数:
-f:指定要使用的Dockerfile路径
-pull:尝试去更新镜像的新版本
-quiet, -q:安静模式,成功后只输出镜像ID
-tag, -t: 指定了最终镜像的名字及标签,通常格式为name:tag或者不指定标签(可以在一次构建中为一个镜像设置多个标签)
最后有一个 . 表示当前目录,这里是指将Dockerfile所在的当前目录作为构建上下文目录
docker build -t yoyo_pytest:v1 .
docker build -t demo:v1 .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)