docker入门(二):镜像和容器
一、docker常用命令
#镜像名 版本标签 镜像id 创建时间 镜像大小
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest fce289e99eb9 6 months ago 1.84kB
docker version/info #查看版本/信息
docker --help #查看说明文档
docker logs -f -t --tail 日志条数 容器ID #查看容器日志
docker inspect #获取容器/镜像的元数据
二、镜像基本操作
镜像操作#
1 拉取#
docker search [xxx] #查找名为xxx的镜像
docker pull [xxx]:版本号 # 拉取xxx镜像,不加版本号则默认拉取最新版本
2 查看#
docker images -a/-qa #列出本地全部镜像/全部镜像的ID
2 删除#
docker rmi -f [xxx] #删除名为xxx的镜像,加-f为强制删除(不论现在正在运行)
docker rmi $(docker images -q) #删除所有镜像
注意:要拉取的镜像名确认不要写错,否则会报错(repository does not exist or may require 'docker login')
3 导出镜像#
#保存镜像到指定目录
#这里的原image名和版本号需要与要保存的镜像一致
docker save 镜像ID -o d:\dockerimages\新image名.tar 原image名:版本号
4 导入镜像#
#从指定目录加载镜像
docker load -i \dockerimages\新image名.tar
三、容器基本操作
新建/运行容器#
#-i为以交互模式启动容器
#-t为容器重新分配一个伪输入终端(两者合写为-it)
#--name为容器命名,不加则默认自动分配
docker run -it --name mycentos centos
#创建守护式容器
#直接在后台创建一个容器,但是如果容器里没有活动则会在创建后立刻自动停止
docker run -d centos
#8080为docker服务对外暴露的端口,8080指docker内的tomcat端口
docker run -it -p 8080:8080 tomcat
容器操作#
1 查看#
docker ps #查看当前运行的容器
docker ps -l #列出最近创建的容器
docker ps -a #列出当前和曾经运行的容器
docker ps -n x #显示最近运行过的n个容器
#在以上基础上变为 -xq 可以只显示容器编号
#如果找不到命令,则可能为该镜像没有包含procps工具
apt-get update && apt-get install procps
2 进入#
#在已运行的容器中,执行命令,操作对象是容器,如果你要进入已运行的容器,并且执行命令,用exec;
docker exec -it 容器名/容器ID /bin/bash
#同样操作的是已运行的容器,可以将本机标准输入(键盘输入)输到容器中,也可以将容器的输出显示在本机的屏幕上,如果你想查看容器运行过程中产生的标准输入输出,用attach;
docker attach 容器名/容器ID
3 停止#
docker stop 容器名/容器ID #停止单个
docker stop $(docker ps -a -q) #停止全部
docker kill 容器名/容器ID #强制停止
4 退出#
exit #容器停止并退出
ctrl+P+Q #容器不停止退出(非常重要!!!!!!!)
5 删除#
docker rm 容器名/容器ID #删除单个
docker rm $(docker ps -a -q) #删除全部
注意:rm为删除容器,rmi为删除镜像
6 提交容器#
docker commit -m="描述信息" -a="作者" 容器ID 要创建的新镜像名:版本号
7 从容器中拷贝文件到主机中#
docker cp 容器名/容器ID:文件位置 /root
作者:Createsequence
出处:https://www.cnblogs.com/Createsequence/p/11445655.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义