Docker 是什么,为什么使用 Docker?
Docker 是一个开源项目,提供了一种以容器为基础的应用程序运行环境,使得应用程序可以快速、可靠、跨平台地打包、分发和部署。使用 Docker 可以将应用程序和其依赖的库、框架等一起打包成一个 Docker 镜像,该镜像可以在任何支持 Docker 的机器上运行。
使用 Docker,有以下几个优点:
-
轻量级:Docker 容器非常轻量,启动和停止速度也很快,可以更加高效地利用资源。
-
可移植性:Docker 容器可以在不同平台和环境中运行,避免了因为环境变化导致的不可预期的问题。
-
一致性:Docker 容器提供了一个隔离的环境,保证了应用程序的可重复性和一致性,可以避免因为依赖于特定运行时环境而导致的问题。
-
灵活性:Docker 容器可以随时被启动、停止和删除,非常适合对资源需求波动较大的应用程序,可以快速响应变化。
-
安全性:Docker 容器提供了一种基于隔离的安全机制,能够保证应用程序和系统之间的安全隔离,减少了风险。
总之,Docker 为开发人员和运维人员提供了一个更加高效、可靠和安全的容器化平台,使得应用程序的打包、发布和运行更加简单和可控。
安装 Docker
安装 Docker 需要分为两个部分,一个是安装 Docker 引擎,另一个是安装 Docker CLI(命令行工具)。
以下是在 Ubuntu 上安装 Docker 的步骤:
-
首先更新本地 apt 包缓存:
sudo apt-get update -
安装 Docker 的依赖包:
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -
添加 Docker 的 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - -
添加 Docker 的 APT 仓库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" -
再次更新 apt 包缓存:
sudo apt-get update -
安装最新版本的 Docker 引擎:
sudo apt-get install docker-ce docker-ce-cli containerd.io -
验证 Docker 是否安装成功:
sudo docker run hello-world如果能够正常输出 "Hello from Docker!" 等信息,则说明 Docker 安装成功。
安装 Docker CLI 非常简单,只需要在 Docker 的官网下载相应的命令行工具即可。在 Windows 上可以下载 Docker Desktop,而在 macOS 和 Linux 上可以下载 Docker CLI。
Docker 架构
Docker 的架构主要分为以下四个组件:
-
Docker 客户端(Docker client): 用于构建、打包和管理 Docker 容器,用户和 Docker 守护进程之间的交互都是通过 Docker 客户端来完成的。Docker 客户端会把用户在命令行上输入的指令传输到 Docker 守护进程上。
-
Docker 守护进程(Docker daemon): 运行在主机操作系统上的后台进程,负责管理 Docker 镜像、容器、网络和存储等组件。当 Docker 客户端向 Docker 守护进程发送命令时,Docker 守护进程会接收命令并执行相应操作。
-
Docker 镜像(Docker image): 是 Docker 容器运行的基础。Docker 镜像可以看作是一个 Docker 容器的只读模板,包含了一个完整的文件系统和运行所需的依赖项。Docker 镜像可以通过 Dockerfile 文件构建,也可以从 Docker Hub 上拉取。
-
Docker 容器(Docker container): 是 Docker 运行的基本单位,包含了一个完整的运行时环境。Docker 容器是由 Docker 镜像创建而来,与镜像不同的是,容器是可读可写的,并可以运行在 Docker 容器运行时(runtime)环境中。Docker 容器可以被启动、停止、删除,也可以与其他容器或主机进行交互。
Docker 基本命令
Docker 是一个基于容器技术的开源项目。Docker 命令按功能可以分为镜像管理、容器管理和网络管理。
- 镜像管理命令
docker images:列出本地所有镜像docker search:在 Docker Hub 上搜索镜像docker pull:从 Docker 镜像仓库中拉取镜像到本地docker rmi:删除本地镜像
- 容器管理命令
docker ps:列出所有正在运行的容器docker ps -a:列出所有容器,包括已停止的docker run:创建并启动一个容器docker start:启动一个已创建的容器docker stop:停止一个运行中的容器docker rm:删除一个容器
- 网络管理命令
docker network ls:列出当前所有网络docker network create:创建一个新的 Docker 网络docker network inspect:查看指定网络的详细信息docker network connect:将容器连接到指定网络docker network disconnect:将容器和指定网络断开连接
另外,还有一些其他常用的命令如下:
docker exec:在正在运行的容器中执行命令docker logs:查看容器的日志输出docker build:通过 Dockerfile 构建一个新的镜像