Docker基础(一)

Docker是什么

Docker是---个改进的容器技术。具体的"改进"体现在, Docker为容器引入了镜 像,使得容器可以从预先定义好的模版 (images)创建出来,并且这个模版还是分层的。

Docker经常被提起的特点:

  • 轻量,体现在内存占用小,高密度
  • 快速,毫秒启动
  • 隔离,沙盒技术更像虚拟机

Docker技术的基础:

  • namespace,容器隔离的基础,保证A容器看不到B容器. 6个名空间:
    User,Mnt,Network,UTS,IPC,Pid
  • cgroups,容器资源统计和隔离。主要用到的cgroups子系统:
    cpu,blkio,device,freezer,memory
  • unionfs,典型: aufs/overlayfs,分层镜像实现的基础

Docker组件:

  • docker Client客户端------------>向docker服务器进程发起请求,如:创建、 停止、销毁容器等操作
  • docker Server服务器进程----->处理所有docker的请求,管理所有容器
  • docker Registry镜像仓库------>镜像存放的中央仓库,可看作是存放二进制 的scm

Docker安装

Docker的安装非常简单,支持目前所有主流操作系统,从Mac到Windows到各种 Linux发行版

具体参考: docker安装

Docker常见命令

容器相关操作

  • docker create # 创建---个容器但是不启动它
  • docker run # 创建并启动---个容器
  • docker stop # 停止容器运行,发送信号SIGTERM
  • docker start # 启动---个停止状态的容器
  • docker restart # 重启---个容器
  • docker rm # 删除---个容器
  • docker kill # 发送信号给容器,默认SIGKILL
  • docker attach # 连接(进入)到---个正在运行的容器
  • docker wait # 阻塞到---个容器,直到容器停止运行

获取容器相关信息

  • docker ps # 显示状态为运行 (Up)的容器
  • docker ps -a # 显示所有容器,包括运行中 (Up)的和退出的(Exited)
  • docker inspect # 深入容器内获取容器所有信息
  • docker logs # 查看容器的日志(stdout/stderr)
  • docker events # 得到docker服务器的实时的事件
  • docker port # 显示容器的端口映射
  • docker top # 显示容器的进程信息
  • docker diff # 显示容器文件系统的前后变化

导出容器

  • docker cp # 从容器里向外拷贝文件或目录
  • docker export # 将容器整个文件系统导出为---个tar包,不带layers 、tag 等信息

执行

  • docker exec # 在容器里执行---个命令,可以执行bash进入交互式

镜像操作

  • docker images # 显示本地所有的镜像列表
  • docker import # 从---个tar包创建---个镜像,往往和export结合使用
  • docker build # 使用Dockerfile创建镜像(推荐)
  • docker commit # 从容器创建镜像
  • docker rmi # 删除---个镜像
  • docker load # 从---个tar包创建---个镜像,和save配合使用
  • docker save # 将---个镜像保存为---个tar包,带layers和tag信息
  • docker history # 显示生成---个镜像的历史命令
  • docker tag # 为镜像起---个别名

镜像仓库(registry)操作

  • docker login # 登录到---个registry
  • docker search # 从registry仓库搜索镜像
  • docker pull # 从仓库下载镜像到本地
  • docker push # 将---个镜像push到registry仓库中
相关推荐
Jerry小杰13 分钟前
运维神器|单端口搞定多台内网SSH!frp端口复用终极教程
运维·ssh
Python私教40 分钟前
Blender模型导入Godot完整教程:GLB、BLEND与继承场景怎么选
运维·godot·blender
运维大师3 小时前
【K8S 运维实战】15-链路追踪Jaeger与OTel
运维·容器·kubernetes
霁月的小屋4 小时前
Docker 工程化实践(二):理解镜像分层与容器文件系统
运维·docker·容器
Android系统攻城狮4 小时前
Linux PipeWire深度解析之pw_context_add_spa_lib调用流程与实战(二十九)
linux·运维·服务器·音频进阶·pipewire音频进阶
Dovis(誓平步青云)4 小时前
《如何在CentOS 7中添加Plex官方软件源:解决文件磁盘难管理难题》
linux·运维·服务器·后端·生成对抗网络·centos
草莓熊Lotso4 小时前
【Linux网络】深入理解Linux IO多路复用:select服务器完善、内核原理与poll实战
linux·运维·服务器·c语言·网络·c++
深念Y4 小时前
MSYS2 是什么,要不要装?
运维·环境·开发·工具·msys2
网安老伯5 小时前
网络安全基础要点知识介绍(非常详细),零基础入门到精通,看这一篇就够了
运维·前端·网络协议·web安全·网络安全·职场和发展
迷茫中的自我5 小时前
GitHub Actions自动化运维实战:从CI/CD到云原生部署
运维·自动化·github