Docker 入门指南
什么是 Docker?
Docker 是一个开源的容器化平台,用于将应用程序及其所有依赖项打包在一个可移植的容器中,并对其进行分发和部署。Docker 容器可以在任何支持 Docker 的操作系统上运行,使开发人员能够轻松地将应用程序在不同环境中进行部署。
Docker 的优势
相比于传统的虚拟化技术,Docker 提供了以下几个优势:
- 轻量级:Docker 容器共享宿主机的操作系统内核,因此更加轻量级和高效。
- 可移植性:Docker 容器可以在任意支持 Docker 的操作系统上运行,无需担心环境差异导致的兼容性问题。
- 快速部署:Docker 可以快速地启动和停止应用程序,并且容器之间相互隔离,不会相互影响。
- 易于管理:Docker 提供了一套简单易用的命令行工具和 API,可以方便地管理容器的生命周期和资源。
Docker 安装和使用
-
首先,需要在您的机器上安装 Docker。您可以根据您的操作系统选择相应的安装方式,在官方网站上可以找到详细的安装说明。
-
安装完成后,可以通过以下命令验证 Docker 是否成功安装:
docker version
- 创建一个简单的 Docker 容器,例如一个运行 Nginx 的容器。可以使用以下命令:
docker run -d -p 80:80 nginx
这个命令会下载 Nginx 镜像并创建一个名为 "nginx" 的容器。参数 "-d" 表示在后台运行,"-p 80:80" 表示将容器的 80 端口映射到宿主机的 80 端口。
- 通过访问
http://localhost
可以查看 Nginx 默认页面,证明容器已成功运行。
Docker 镜像
Docker 镜像是用于创建容器的模板,类似于虚拟机中的镜像。镜像是一个只读的文件系统,包含了应用程序运行所需的所有文件和依赖项。
您可以通过以下命令列出本地的镜像:
docker images
可以通过以下命令下载一个镜像:
docker pull image_name
例如,要下载 Ubuntu 镜像,可以执行:
docker pull ubuntu
Docker 容器的生命周期
Docker 容器有以下几种状态:
stateDiagram
[*] --> created
created --> running
running --> stopped
stopped --> [*]
- created:容器已被创建,但尚未运行。
- running:容器正在运行。
- stopped:容器已停止运行。
可以通过以下命令启动一个已创建的容器:
docker start container_id
可以通过以下命令停止运行中的容器:
docker stop container_id
可以通过以下命令重启一个已停止的容器:
docker restart container_id
可以通过以下命令删除一个容器:
docker rm container_id
Docker Compose
Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。它使用一个 YAML 文件来配置应用程序的服务、网络和卷等。
以下是一个简单的 docker-compose.yml
文件示例:
version: '3'
services:
web:
build: .
ports:
- "80:80"
db:
image: mysql
environment:
- MYSQL_ROOT_PASSWORD=password
以上示例定义了两个服务:一个名为 "web" 的服务,另一个名为 "db" 的服务。"web" 服务使用当前目录下的 Dockerfile 构建镜像,并将容器的 80 端口映射到宿主机的 80 端口。"db" 服务使用官