本文旨在为新手提供Docker容器化部署入门的全面指南,涵盖了Docker的基本概念、安装配置、镜像和容器管理等内容。同时,文章详细介绍了Docker的网络配置和多容器部署实践,帮助读者快速掌握Docker容器化部署的关键技能。此外,文中还通过实例演示了如何使用Docker部署简单的Web应用。
Docker 是一个开源的应用容器引擎,可以让开发者将自己的应用及其依赖打包成一个可移植的容器,该容器可以运行在任何安装了 Docker 的机器上。Docker 通过使用 Linux 内核功能如 cgroups 和命名空间来提供轻量级的虚拟化,这种虚拟化被称为操作系统级的虚拟化。
Docker 官方推荐使用以下操作系统:
例如,安装 Docker 在 Ubuntu 18.04 LTS 上的步骤如下:
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update sudo apt-get install docker-ce
启动 Docker 服务:
sudo systemctl start docker
查看 Docker 服务状态:
sudo systemctl status docker
查看 Docker 版本信息:
docker --version
获取 Docker 帮助信息:
docker --help
查看 Docker 镜像列表:
docker images
查看 Docker 容器列表:
docker ps -a
docker run -it ubuntu /bin/bash
Docker 镜像是一个只读模板,可以用来创建 Docker 容器。镜像包含了一个应用运行的必要环境,包括文件系统、环境变量、用户信息、运行时设置等。
搜索镜像:
docker search nginx
docker pull nginx
docker build -t my-nginx .
假设存在一个 Dockerfile,内容如下:
# 使用官方的 Ubuntu 镜像作为基础镜像 FROM ubuntu:latest # 设置环境变量 ENV DEBIAN_FRONTEND=noninteractive # 更新 apt 包列表并安装 nginx RUN apt-get update && apt-get install -y nginx # 将容器的 80 端口映射到主机的 8080 端口 EXPOSE 80 # 设置容器启动时运行的命令 CMD ["nginx", "-g", "daemon off;"]
使用上述 Dockerfile 构建镜像:
docker build -t my-nginx .
启动容器:
docker run -d --name my-nginx -p 8080:80 nginx
docker stop my-nginx
查看所有容器:
docker ps -a
查看运行中的容器:
docker ps
docker rm my-nginx
docker exec -it my-nginx /bin/bash
Docker 提供了多种网络模式:
docker run -d --name my-nginx --network host nginx
创建自定义网络:
docker network create my-net
docker run -d --name my-nginx --network my-net nginx
Docker Compose 是一个用于定义和运行多个 Docker 容器的应用程序。Docker Compose 使用 YAML 文件来配置应用程序的服务,并且使用一个命令来启动所有服务。以下是 Docker Compose 的基本使用方法。
创建一个 docker-compose.yml
文件:
version: '3' services: web: image: nginx ports: - "8080:80" networks: - webnet db: image: postgres networks: - webnet networks: webnet:
启动服务:
docker-compose up
假设有一个简单的 Flask 应用,目录结构如下:
my-flask-app/ ├── app.py └── Dockerfile
app.py
文件内容:
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run(host='0.0.0.0')
Dockerfile
文件内容:
FROM python:3.7-slim WORKDIR /app COPY . /app RUN pip install flask EXPOSE 5000 CMD ["python", "app.py"]
创建一个 docker-compose.yml
文件来部署 Flask 应用:
version: '3' services: web: build: . ports: - "5000:5000"
启动服务:
docker-compose up
查看容器日志:
docker logs my-nginx
docker exec -it my-nginx ps aux
通过本指南,您已经了解了 Docker 的基本概念,学会了如何安装和配置 Docker,掌握了 Docker 镜像和容器的管理,了解了 Docker 的网络配置,并且通过实际案例学会了如何使用 Docker 进行容器化部署。希望这些知识能够帮助您更好地利用 Docker 进行应用部署与开发。更多高级功能和最佳实践可以在 Docker 官方文档中找到,建议在实际项目中多加实践。