docker 镜像、容器、仓库 - 操作命令
-
镜像
1.获取镜像
如果不指定TAG,则下载最新版本,默认选择latest标签
1 2 | docker pull ubuntu: 18.04 docker pull ubuntu |
下载非官方镜像
1 | docker pull hub.c. 163.com / public / ubuntu: 18.04 |
2.查看镜像
列出镜像
1 | docker images 或 docker image ls |
tag添加镜像标签
1 | docker tag ubuntu:latest myubuntu:latest |
inspect查看详细信息
1 | docker inspect ubuntu: 18.04 |
history查看镜像历史
1 | docker history ubuntu: 18.04 |
3.搜寻镜像
1 | docker search [option] keyword |
- -f ,--filter filter:过滤输出内容
- --format string:格式化输出内容
- --limit int:限制输入结果个数,默认为25个
- --no-trunc:不截断输出结果
搜索带nginx关键词的镜像
docker search --filter=is-official=true nginx
搜索收藏数超过4的关键词包括tensorflow镜像
docker search --filter=stars=4 tensorflow
4.删除和清理镜像
使用标签删除镜像
1 | docker rmi 或 docker image rm<br>docker rmi myubuntu:latest |
使用镜像ID删除镜像
1 | docker rmi id ( 12 位) |
* 当该镜像创建的容器存在时,镜像文件默认是无法删除的,需先删除依赖镜像的所有容器,然后再删除镜像
==> 使用 docker ps -a 查看已关联使用的容器,然后使用 docker rm ID 删除容器
清理镜像
长时间使用会产生临时文件
1 | docker image prune - f |
- -a ,-all:删除所有无用镜像,不光是临时镜像
- -filter filter:只清理符合给定过滤器的镜像
- -f, -force:强制删除镜像,而不进行提示确认
5.创建镜像
基于已有容器创建
1 | docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]<br><br> 1 ) 首先先启动一个镜像<br> >> docker run it ubuntu: 18.04 / bin / bash<br> 49d5d4e7b3f6 >> touch test<br> 49d5d4e7b3f6 >> exit<br> 记住容器的 ID 为: 49d5d4e7b3f6 <br> 2 )创建提交一个新的镜像<br> docker commit - m "Added a new file" - a "testdocker" 49d5d4e7b3f6 test: 0.1 |
- -a , --author="": 作者信息;
- -c, --change=[]: 提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等
- -m, --message="": 提交信息;
- -p, --pause=true: 提交时暂停容器运行
基于Dockerfile创建
1 | docker build |
6.存出和载入镜像
存出镜像 - 镜像导出
1 | docker save<br>docker save - o ubuntu_18. 04.tar ubuntu: 18.04 |
载入镜像 - 镜像导入
1 | docker load<br>docker load - i ubuntu_18. 04.tar |
7.上传镜像
push上传至docker hub
1 | 1 )先登录,输入注册的用户名和密码<br> docker login<br> 2 )然后使用push命令上传,username为你注册的名称<br> docker push username / xxxx:xx |
-
容器
1.创建容器
新建容器 + 启动
1 | 1 )新建容器<br> docker create - it ubuntu:latest<br> 2 )启动容器<br> docker start xxx |
新建并启动 = 新建+启动
1 | docker run ubuntu / bin / echo 'Hello world' <br>允许用户进行交互<br>docker run - it ubuntu: 18.04 / bin / bash |
后台运行
1 | docker run - d ubuntu / bin / sh - c 'while true; do echo hello world; sleep 1; done' |
容器输出
1 | docker logs ID |
2.停止容器
暂停容器、恢复暂停
1 | docker pause test<br>docker unpause test |
终止容器、重新启动
1 | docker stop ID <br>docker start ID <br>docker restart ID |
3.进入容器
exec命令
1 | docker exec - it ID / bin / bash |
- -d, --detach: 在容器中后台执行命令 ;
- --detach-key="": 指定将容器切回后台的按键 ;
- -e, --env=[]: 指定环境变量列表 ;
- -i, --interactive=true|false: 打开标准输入接受用户输入命令,默认值为 false ;
- --privileged=true|false: 是否给执行命令以高权限,默认值为 false ;
- -t, --tty=true|false: 分配伪终端,默认值为 false ;
- -u, --user="": 执行命令的用户名或ID。
4.删除容器
rm命令
1 | docker rm ID |
- -f, --force=false: 是否强制终止并删除一个运行中的容器 ;
- -l, --link=false: 删除容器的连接,但保留容器 ;
- -v, --volumes=false: 删除容器挂载的数据卷 。
5.导入和导出容器
导出 export
1 | docker export - o XXX.tar ID |
导入 import
1 | docker import XXX.tar test / ubuntu:v1. 0 |
* docker load => 镜像存储文件到本地镜像库
docker import => 容器快照到本地镜像库
区别:容器快照文件将丢弃所有的历史记录和元数据信息,但可以重新制定标签等元数据信息,而镜像存储文件将保存完整记录,体积更大。
6.查看容器
查看容器详细,会以JSON格式返回
1 | docker container inspect ID |
查看容器内进程
1 | docker top ID |
7.其他容器命令
复制文件
1 | 将本地路径 data 复制到 test 容器的 / tmp 路径下:<br>docker cp data ID : / tmp / |
查看变更
1 | docker container diff ID |
查看端口映射
1 | docker container port ID |
更新配置
1 | docker update 参数 ID |
-
仓库
1.搭建本地私有仓库
使用 registry 镜像创建私有仓库
1 | docker run - d - p 5000 : 5000 registry: 2 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步