docker常用操作速查
作为一个java/scala/sql body日常工作虽不会过多涉及docker,但作为打杂专业户还是偶尔要用到,这里记录下常用命令方便使用时速查。
安装
安装docker,如果不想折腾homebrew或是apt这类包管理工具,推荐直接安装docker的desktop版本,安装好后在命令行或gui均可使用,官方下载链接。
安装结束后执行经典version验证安装成功。docker --version
常用命令
启动运行
#运行镜像
docker run mirrors.tencent.com/todacc/rec_index_service_compile:1.1.6
#交互式运行
docker run -it mirrors.tencent.com/todacc/rec_index_service_compile:1.1.6 /bin/bash
保存发布
保存本次更改,类似git commit
docker commit -m="has update" -a="runoob" e218edb10161 mirrors.tencent.com/myspace/video_rec_annalgo:dev
- -m 提交的描述信息
- -a 指定镜像作者
- e218edb10161 容器ID,执行docker ps [-a]查看
- runoob/ubuntu:v2 新镜像名
发布到远端
docker push mirrors.tencent.com/myspace/video_rec_annalgo:dev
这一步可能会遇到denied: requested access to the resource is denied的错误
首先检查是否已进行docker login,如果是发布到其他仓库(非默认),需要login 指定的服务,如我这里发布到腾讯的,执行
docker login --username xxx --password xxx mirrors.tencent.com
如果这里还有问题,需要在针对对应的镜像服务进行排查,比如检查权限等。
镜像容器
#安装镜像
docker pull mirrors.tencent.com/todacc/rec_index_service_compile:1.1.6 /bin/bash
#查看镜像
docker images
#查看某个镜像的详细信息
docker inspect mirrors.tencent.com/todacc/rec_index_service_compile:1.1.6
#查看正在运行的容器
docker ps
#查看历史容器,包含退出的
docker ps -a
#断开后重新连接,先使用ps确定container id
docker attach ${container id}
#继续上次退出的容器。
docker ps -a // 确定container id
docker start ${container id}
docker attach ${container id}
名词解释
IMAGE(镜像):
dokcer中的镜像,可以用git中的代码仓库来理解,可以从pull来使用,更改后commit/push等。
执行docker images
查看当前有哪些镜像
以我个人的机器为例,输出如下,可以看到有REPOSITORY,TAG,IMAGE ID等关键信息:
REPOSITORY TAG IMAGE ID CREATED SIZE
mnadeem/boot-otel-tempo-provider1 0.0.1-SNAPSHOT 32914b1c7cbe 5 months ago 168MB
mirrors.tencent.com/todacc/rec_index_service_compile 1.1.6 2462cdaa0331 7 months ago 8.53GB
mysql 8.0 c0cdc95609f1 13 months ago 556MB
REPOSITORY(仓库): 类似git的仓库的仓库地址,限定唯一一个镜像需要使用${REPOSITORY}:${TAG}
。
有时仓库名含有镜像名,如mirrors.tencent.com/todacc/rec_index_service_compile,imrrors.tencent.com是镜像地址,todacc是命名空间或组的概念,rec_index_service_compile是具体的仓库名。
IMAGE ID: 镜像id,这个比较好理解,限定唯一个镜像。
CONTAINER (容器): 每个镜像运行时,有一个隔离的虚拟容器运行,类似小型虚拟机,hadoop yarn的container也是这个意思。
TAG: 类似于git里的tag,版本的意思,使用仓库名指定image时,如果不是latest时需要指定版本。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)