Docker

Docker

Docker 是一个开源的应用容器引擎,它最初是用 Go 语言开发的。Docker 允许开发者将应用程序及其依赖、库和环境打包到一个可移植的容器中,这个容器可以在任何支持 Docker 的 Linux 或 Windows 机器上运行,保证了应用在不同环境之间的一致性和可迁移性。

Docker与VM虚拟机的区别

容器 虚拟机
快速启动 启动速度相对较慢
通过namespace实现资源隔离,通过cgroup实现限制资源的最大使用量 完全隔离。每个虚拟机都有独立的硬件资源
容器相当于宿主机的进程,性能几乎没有损耗 需要通过hypervisor虚拟机管理程序对宿主机资源虚拟访问,有一定的性能损耗
单机容量能够支持成百上千个容器 单机容量只能支持最多几十个虚拟机
所有容器共享宿主机内核 每个虚拟机都有独立的操作系统和内核

Docker的核心概念

Docker,这一革命性的容器化技术,以其简单、轻量且高效的特点,彻底改变了软件开发和部署的方式。理解Docker的三个核心概念——镜像、容器和仓库,是掌握这一技术的基础。

镜像(Images)

Docker镜像,可以被视为容器的“蓝图”。它是一个静态的文件,包含了创建Docker容器所需的所有指令和代码。镜像是由多层叠加而成的,每层对应于构建过程中的一个指令。这些层是只读的,确保了镜像的可复现性和一致性。用户可以通过编写Dockerfile来定义和构建自己的镜像,Dockerfile是一个包含了一系列构建指令的文本文件。

容器(Containers)

容器是Docker镜像的运行实例。当您从镜像启动一个容器时,Docker会在镜像的最上层添加一个读写层,用于保存容器运行时的状态更改。容器是高度隔离的,它们拥有自己的文件系统、网络配置和进程空间,这使得容器可以在不影响宿主机或其他容器的情况下运行。容器可以被轻松地启动、停止、删除和重启,它们的生命周期管理是通过Docker提供的工具和API来实现的。

仓库(Repositories)

Docker仓库是存储和分发Docker镜像的地方。Docker Hub是Docker官方提供的一个公共仓库,用户可以在这里上传或下载公开的镜像。仓库可以有多个标签,每个标签对应于仓库中的一个镜像版本,这允许用户为同一仓库中的不同版本镜像指定不同的标签。除了公共仓库,Docker还支持私有仓库,这使得企业在内部网络或云服务中存储和管理自己的镜像成为可能。

Docker基本命令

查看docker版本信息

docker version 

查看docker基本信息

docker  info  

镜像搜索

docker search  镜像名字
# 如我要搜索tomcat的镜像
docker search tomcat

镜像管理

  • 列出本地镜像
    docker images
    
  • 搜索镜像
    docker search 镜像名称
    
  • 拉取镜像
    docker pull 镜像名称
    
  • 删除镜像
    docker rmi 镜像ID
    

容器管理

  • 列出所有容器
    docker ps
    
  • 查看容器详情
    docker ps -a
    
  • 创建并运行容器
    docker run 镜像名称
    
  • 查看容器日志
    docker logs 容器ID
    
  • 停止容器
    docker stop 容器ID
    
  • 启动容器
    docker start 容器ID
    
  • 删除容器
    docker rm 容器ID
    

网络管理

  • 列出所有网络
    docker network ls
    
  • 创建网络
    docker network create 网络名称
    
  • 删除网络
    docker network rm 网络名称
    

仓库管理

  • 登录Docker Hub
    docker login
    
  • 推送镜像到仓库
    docker push 镜像名称
    
  • 拉取镜像到仓库
    docker pull 镜像名称
    

容器操作

  • 进入容器
    docker exec -it 容器ID /bin/bash
    
  • 复制文件
    docker cp 主机路径 容器ID:容器路径
    
    docker cp 容器ID:容器路径 主机路径
    
  • 查看容器内部进程
    docker top 容器ID
    
  • 查看容器详情
    docker inspect 容器ID
    

仓库管理

  • 搜索仓库
    docker search 仓库名称
    
  • 保存镜像
    docker save -o 文件名 镜像名称
    
  • 加载镜像
    docker load < 文件名
    

系统管理

  • 查看Docker信息
    docker info
    
  • 查看Docker事件
    docker events
    
  • 更新Docker
    docker update
    

其他高级操作

  • Dockerfile构建镜像
    docker build -t 镜像名称 .
    
  • Docker Compose管理多个容器
    docker-compose up
    

相关推荐

  1. <span style='color:red;'>docker</span>

    docker

    2024-04-22 13:26:04      32 阅读
  2. <span style='color:red;'>Docker</span>

    Docker

    2024-04-22 13:26:04      27 阅读
  3. <span style='color:red;'>docker</span>

    docker

    2024-04-22 13:26:04      35 阅读
  4. <span style='color:red;'>Docker</span>

    Docker

    2024-04-22 13:26:04      45 阅读
  5. <span style='color:red;'>Docker</span>

    Docker

    2024-04-22 13:26:04      39 阅读
  6. Docker

    2024-04-22 13:26:04       25 阅读
  7. Docker

    2024-04-22 13:26:04       32 阅读
  8. <span style='color:red;'>Docker</span>

    Docker

    2024-04-22 13:26:04      34 阅读
  9. docker

    2024-04-22 13:26:04       34 阅读
  10. <span style='color:red;'>Docker</span>

    Docker

    2024-04-22 13:26:04      37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-22 13:26:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-22 13:26:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-22 13:26:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-22 13:26:04       20 阅读

热门阅读

  1. LeetCode279 完全平方数

    2024-04-22 13:26:04       15 阅读
  2. Vue3中props的原理与使用

    2024-04-22 13:26:04       13 阅读
  3. http、https、json编程

    2024-04-22 13:26:04       18 阅读
  4. 人工智能安全与光明时代

    2024-04-22 13:26:04       16 阅读
  5. 用Bash变量进行sed替换

    2024-04-22 13:26:04       16 阅读
  6. 在Bash中如何提取子字符串

    2024-04-22 13:26:04       17 阅读
  7. 负载均衡的原理和算法

    2024-04-22 13:26:04       15 阅读
  8. css3中有哪些伪选择器?

    2024-04-22 13:26:04       17 阅读
  9. PotCSS

    2024-04-22 13:26:04       17 阅读
  10. Hbase 伪分布式安装 - UbuntuServer2204

    2024-04-22 13:26:04       10 阅读