目录

  1. 引言
  2. Docker 安装
  3. Docker 基础概念
  4. Docker 常用命令
  5. Docker 网络与存储
  6. Docker Compose
  7. Dockerfile 与镜像构建
  8. 常见问题与解决方案
  9. 总结
  10. 参考资料

1. 引言

Docker 是一个开源的容器化平台,旨在使开发者能够轻松地打包、发布和运行应用程序。Docker 使用容器技术,将应用程序及其依赖项打包在一起,并在任何环境中运行,无论是开发环境还是生产环境。这种隔离方式使得应用程序在不同的系统上具有一致性,解决了传统虚拟化技术的很多问题。

在本教程中,我们将介绍 Docker 的基础概念、常用命令以及 Docker 的安装和配置方法,帮助你快速上手 Docker。


2. Docker 安装

安装前的准备

在安装 Docker 之前,请确保你的操作系统满足以下要求:

  • Linux 系统需要支持 systemdUpstart
  • Windows 和 macOS 用户需要安装 Docker Desktop。

在 Linux 上安装 Docker

步骤:

  1. 更新系统sudo apt-get update
  2. 安装依赖sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
  3. 添加 Docker 官方 GPG 密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  4. 添加 Docker 仓库sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  5. 安装 Dockersudo apt-get update sudo apt-get install docker-ce
  6. 启动并验证 Docker 服务sudo systemctl start docker sudo systemctl enable docker sudo systemctl status docker
  7. 验证安装docker --version

在 Windows 和 macOS 上安装 Docker

  1. 下载 Docker Desktop
  2. 安装并启动 Docker Desktop: 按照安装程序的步骤完成安装,安装完成后,启动 Docker Desktop,系统会自动启动 Docker 引擎。
  3. 验证安装: 打开终端或命令行,运行以下命令: docker --version

3. Docker 基础概念

镜像

Docker 镜像是一个轻量级的、可执行的包,包含了运行某个软件所需的所有代码、库、环境变量和配置文件。镜像是容器的“模板”。

  • 拉取镜像docker pull <image_name>
  • 查看本地镜像docker images

容器

容器是从镜像创建的可运行实例。每个容器都是独立的,并且可以在不同的环境中运行。

  • 启动容器docker run -d --name <container_name> <image_name>
  • 查看正在运行的容器docker ps
  • 进入容器docker exec -it <container_name> /bin/bash

Docker 仓库

Docker 仓库用于存储和共享 Docker 镜像。Docker 官方提供了 Docker Hub 仓库,你也可以创建自己的私有仓库。

  • 推送镜像到仓库docker push <username>/<repository>:<tag>

4. Docker 常用命令

docker run

docker run 是用于启动一个新容器的命令。可以指定容器的名称、端口映射和其他配置。

docker run -d -p 80:80 --name webserver nginx

该命令将启动一个基于 Nginx 镜像的容器,并将容器的 80 端口映射到主机的 80 端口。

docker ps

docker ps 显示当前正在运行的容器。

docker ps

docker exec

docker exec 用于在正在运行的容器中执行命令。它常用于进入容器内部。

docker exec -it <container_id> /bin/bash

docker build

docker build 用于根据 Dockerfile 创建镜像。

docker build -t <image_name>:<tag> .


5. Docker 网络与存储

Docker 网络

Docker 提供多种网络模式(如 bridgehostoverlay 等)来连接不同的容器和主机。

  • 查看网络配置docker network ls
  • 创建自定义网络docker network create my_network

Docker 存储

Docker 提供了多种存储方式(如 volumesbind mounts),以便容器能够持久化存储数据。

  • 创建卷docker volume create my_volume
  • 挂载卷到容器docker run -v my_volume:/data my_image

6. Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,你可以使用 YAML 文件来配置应用程序的服务。

  • 安装 Docker Compose: 请参照 Docker Compose 官方安装文档进行安装。
  • 定义 docker-compose.ymlversion: '3' services: web: image: nginx ports: - "80:80" db: image: postgres
  • 启动应用docker-compose up -d

7. Dockerfile 与镜像构建

Dockerfile 是一种文本文件,包含了构建 Docker 镜像的所有指令。以下是一个简单的 Dockerfile 示例:

# 使用官方的 Python 镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 拷贝当前目录的所有文件到容器中
COPY . .

# 安装依赖
RUN pip install -r requirements.txt

# 设置容器启动命令
CMD ["python", "app.py"]

  • 构建镜像docker build -t my_python_app .

8. 常见问题与解决方案

问题 1:Docker 容器无法启动

  • 原因:可能是端口冲突、容器配置错误或镜像缺失等问题。
  • 解决方案:检查容器日志,修复配置或清理端口后重启容器。

问题 2:如何删除 Docker 容器或镜像?

  • 删除容器docker rm <container_id>
  • 删除镜像docker rmi <image_id>

9. 总结

Docker 是一种非常强大且灵活的工具,可以帮助开发者和运维人员更高效地构建、部署和管理应用程序。本教程介绍了 Docker 的安装、常用命令、网络与存储管理、Docker Compose 等内容,帮助你快速入门并深入理解 Docker。


10. 参考资料