Docker学习笔记(自用,不定期更新)

知识点:

容器是 Docker 的另一个核心概念。简单来说,容器是镜像的一个运行实例。所不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层,同时,容器中的应用进程处于运行状态。

容器保护三个状态:

运行:进程正常运行

暂停:进程暂停,CPU不再运行,并不释放内存

停止:进程终止,回收进程占用的内存、CPU等资源

基础指令

powershell 复制代码
systemctl start docker     #启动docker
systemctl stop docker      #关闭docker
systemctl restart docker   #重启docker
systemctl enable docker    #设置开机自启动
systemctl status docker    #查看docker运行状态
docker version             #查看docker版本号信息
docker --help              #docker命令提示


docker unpause name  #让一个容器从暂停状态恢复运行
docker stop name     #停止一个运行的容器(杀死进程、回收内存,仅剩文件系统)
docker start name    #让一个停止的容器再次运行
docker restart name  #重启容器
docker kill 容器名    #杀掉一个运行中的容器
docker rename 容器名 新容器名  #更换容器名
docker logs 容器名        #查看容器运行日志         
docker logs -f 容器名     #持续跟踪日志
docker logs -f --tail=20 容器名  #查看末尾多少行

#进入容器执行命令,两种方式 docker exec 和 docker attach,推荐docker exec
#方式一 docker exec。
docker exec -it 容器名/容器ID bash
#方式二 docker attach,推荐使用docker exec
docker attach 容器名/容器ID

#从容器退到自己服务器中(不能用ctrl+C)
exit      #直接退出。未添加-d(持久化运行容器)时,执行此参数 容器会被关闭
ctrl+p+q  #优雅退出。无论是否添加-d参数,执行此命令容器都不会被关闭

常用指令

shell 复制代码
#官方脚本安装docker
curl -fsSL https://get.docker.com/ | sh  

#搜寻带关键字的镜像,此示例关键字为nginx
docker search --filter=is-official=true nginx  

#获取ubuntu:18.04镜像
docker pull ubuntu:18.04

#查看镜像
docker images 

#添加ubuntu:18.04镜像的ubuntu:00标签
docker tag ubuntu:18.04 ubuntu:00

#删除镜像,7659b7ddf617为镜像ID,centos-sou:latest为镜像名
docker rmi  -f 7659b7ddf617  
docker rmi centos-sou:latest  

#commit构建镜,将容器 ad080923604a 的当前状态保存为一个新的镜像 centos-touch(手工创建,可重复性弱,无镜像原始信息)
docker commit ad080923604a centos-touch  


docker build -t centos-sou .   Dockerfile构建镜像(通过dockerfile创建镜像,可查看镜像分层结构)
docker save -o centos_test.tar centos-sou   导出镜像
docker load -i centos_test.tar    导入本地镜像
docker push 用户名/centos-updata00  上传镜像到公共仓库
docker image prune -f   清理镜像(删除临时文件层)

清理指令

powershell 复制代码
#杀死所有正在运行的容器
docker kill $(docker ps -a -q)

# 删除所有已经停止的容器
docker rm $(docker ps -a -q)

#删除所有未打 test 标签的镜像
docker rmi $(docker images -q -f test=true)

#删除所有镜像
docker rmi $(docker images -q)
相关推荐
达柳斯·绍达华·宁6 分钟前
重读CV系列——&&3、Faster-RCNN学习
学习
weixin_4316004416 分钟前
做 Agent 会用到的 Node API(4):取消与 AbortController
前端·学习·ai·agent·ai编程
2301_809051141 小时前
STM32 GPIO控制器及其应用 学习笔记-2
笔记·stm32·学习
影视飓风TIM1 小时前
C++ STL 完整入门笔记[9]:C++ 仿函数、priority_queue与STL算法底层笔记
数据结构·c++·笔记
依然鸣2 小时前
蓝桥杯多校模拟赛(第二场)题解
数据结构·c++·经验分享·学习·算法·图论
依然鸣2 小时前
蓝桥杯多校模拟赛 题解
数据结构·c++·经验分享·学习·算法·蓝桥杯
LccKyI2 小时前
C# 零基础学习 Day01|基础概念梳理 + 思维导图总结
开发语言·笔记·学习·c#
宵时待雨2 小时前
linux笔记归纳13:Socket编程UDP
linux·服务器·笔记·udp
艾莉丝努力练剑2 小时前
【MYSQL】MYSQL学习的一大重点:视图
android·服务器·数据库·学习·mysql·面试·视图
艾莉丝努力练剑2 小时前
【MYSQL】MYSQL学习的一大重点:事务(下)- InnoDB 事务隔离性原理(MVCC 视角)
android·数据库·b树·sql·学习·mysql·面试