Docker容器

Docker容器化部署入门:新手必读指南

本文主要是介绍Docker容器化部署入门:新手必读指南,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
概述

本文介绍了Docker的基本概念、安装方法、常用命令以及镜像和容器的管理,帮助新手快速掌握Docker的使用。文章详细解释了如何搭建Docker环境、管理镜像和容器,以及使用Docker Compose部署多容器应用。通过实战案例,展示如何将一个简单的Python Web应用程序容器化部署。本文为初学者提供了全面的指导,涵盖了从环境搭建到部署的应用全过程。

Docker容器化部署入门:新手必读指南
Docker简介

什么是Docker

Docker 是一个开源的应用容器引擎,可以将应用及其依赖打包成一个可移植的容器,方便在任何支持Docker的环境中运行,如Linux、Windows等。容器之间完全隔离,并且具有资源利用率高、启动速度快等特点。

Docker的基本概念和术语

使用 Docker 之前,了解一些基本概念和术语是必要的:

  • 镜像(Image):Docker 镜像是一个轻量级、独立的、可执行的软件包,包含运行应用程序所需的一切内容,包括代码、运行时、库、环境变量和配置文件。镜像可以理解为一个带有环境的可执行文件。
  • 容器(Container):容器是从镜像创建的运行实例,可以被启动、停止、删除。每个容器都是独立的、安全的,并提供明确的资源(CPU、内存、磁盘 I/O 等)控制。
  • 仓库(Repository):Docker 仓库是集中存放镜像文件的场所。仓库分为公开仓库(如 Docker Hub)和私人仓库。镜像可以从仓库中下载,也可以将本地镜像上传到仓库。

Docker的特点和优势

Docker 的主要特点包括:

  • 轻量级:Docker 需要的资源较少,可以快速启动和停止。
  • 可移植性:Docker 容器可以在任何支持 Docker 的环境中运行。
  • 隔离性:每个容器都是独立的,相互之间不会有任何接口。
  • 一致性:开发环境和生产环境保持一致,减少了“它在我的机器上运行,但在生产环境中却不行”的问题。
  • 版本管理:Docker 提供了版本管理功能,可以方便地回滚到之前的版本。
  • 资源利用:Docker 可以有效地利用资源,提高了资源利用率。
Docker环境搭建

安装Docker

Docker 支持多种操作系统,安装步骤略有不同。以下是安装 Docker 的常见步骤:

安装Docker for Linux

对于基于 Debian 的系统(如 Ubuntu),可以通过以下命令安装 Docker:

sudo apt-get update
sudo apt-get install docker.io

对于基于 RHEL 的系统(如 CentOS),可以通过以下命令安装 Docker:

sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker

安装Docker for Windows 或 Mac

Docker 提供了图形界面的安装程序,可以从 Docker 官方网站下载安装包并按照提示进行安装。

Docker的基本命令操作

安装完成后,可以通过以下命令开始使用 Docker:

  • 查看 Docker 版本
docker --version
  • 列出所有镜像
docker images
  • 列出所有容器
docker ps -a
  • 运行一个容器
docker run -it ubuntu:latest /bin/bash

Docker镜像和容器的基本使用

下载镜像

使用 docker pull 命令下载镜像:

docker pull ubuntu:latest

运行容器

使用 docker run 命令运行容器:

docker run -d -p 8080:80 nginx
  • -d:后台运行容器。
  • -p:端口映射,将宿主机的 8080 端口映射到容器的 80 端口。

查看容器状态

使用 docker ps 命令查看正在运行的容器:

docker ps

使用 docker ps -a 查看所有容器(包括停止的):

docker ps -a

停止和删除容器

使用 docker stop 命令停止容器:

docker stop <container_id>

使用 docker rm 命令删除容器:

docker rm <container_id>
Docker镜像管理

下载Docker镜像

使用 docker pull 命令下载镜像:

docker pull nginx:latest

创建自己的Docker镜像

创建镜像的基本步骤如下:

  1. 编写 Dockerfile 文件,定义镜像构建的步骤。
  2. 使用 docker build 命令构建镜像。

示例:创建一个简单的 Python 应用镜像

首先,创建一个目录并进入该目录:

mkdir myapp
cd myapp

然后,在该目录下创建一个 Dockerfile 文件,内容如下:

# 使用官方 Python 运行时作为父镜像
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

# 复制当前目录下的 myapp 文件夹内容到容器的 /app 目录
COPY . /app

# 安装应用所需的依赖
RUN pip install --no-cache-dir flask

# 定义环境变量
ENV NAME World

# 运行应用
CMD ["python", "app.py"]

接下来,构建镜像:

docker build -t myapp:latest .
  • -t:指定镜像的标签。
  • .:表示 Dockerfile 所在目录。

上传和分享Docker镜像

  1. 登录 Docker Hub:
docker login
  1. 打标签:
docker tag myapp:latest <username>/myapp:latest
  1. 推送镜像:
docker push <username>/myapp:latest
Docker容器管理

运行和停止Docker容器

运行容器的基本命令如下:

docker run -d -p 8080:80 nginx

停止容器:

docker stop <container_id>

查看Docker容器状态

查看正在运行的容器:

docker ps

查看所有容器(包括停止的):

docker ps -a

Docker容器的网络和卷配置

网络配置

使用 -p 参数进行端口映射:

docker run -d -p 8080:80 nginx

使用 --network 参数指定网络:

docker run --network=my_network myapp

卷配置

使用 -v 参数进行卷映射:

docker run -d -v /host/path:/container/path nginx

查看卷信息:

docker volume ls
Docker Compose入门

什么是Docker Compose

Docker Compose 是一个用来定义和运行多容器 Docker 应用的工具。使用 Dockerfile 来定义环境,用 docker-compose.yml 来配置运行环境。Docker Compose 可以定义多个容器的启动和依赖关系,简化了多容器应用的部署过程。

使用Docker Compose的优势

  • 简化多容器应用部署:Docker Compose 可以定义多个容器的启动和依赖关系,简化了多容器应用的部署过程。
  • 统一配置文件:Docker Compose 使用一个 docker-compose.yml 文件来配置所有容器的启动参数,便于管理和维护。
  • 自动化部署:Docker Compose 支持自动化部署,可以通过命令行脚本或 CI/CD 工具来自动化部署应用。

编写Docker Compose配置文件

示例:编写一个简单的 docker-compose.yml 文件

假设我们有一个简单的 Python 应用,需要一个 Web 服务器容器和一个数据库容器。以下是一个简单的 docker-compose.yml 文件示例:

version: '3'
services:
  web:
    build: ./web
    ports:
      - "80:80"
    depends_on:
      - db
  db:
    image: postgres:latest
    environment:
      POSTGRES_PASSWORD: example
  • version:指定 Docker Compose 文件的版本。
  • services:定义服务容器。
  • web:定义一个 web 服务容器。
    • build:指定 Dockerfile 所在的目录。
    • ports:端口映射。
    • depends_on:指定 web 服务依赖的其他服务。
  • db:定义一个数据库服务容器。
    • image:指定使用的镜像。
    • environment:设置环境变量。

启动和停止容器

使用 docker-compose up 启动所有服务:

docker-compose up

使用 docker-compose down 停止并清理所有服务:

docker-compose down
实战案例:使用Docker部署一个简单的应用程序

准备阶段:选择一个简单的应用程序

选择一个简单的应用程序,例如一个 Python Web 应用程序,使用 Flask 框架。

构建镜像:将应用程序容器化

首先,创建应用目录结构:

mkdir myapp
cd myapp

myapp 目录下创建 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', port=80)

创建 Dockerfile 文件,内容如下:

# 使用官方 Python 运行时作为父镜像
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

# 复制当前目录下的 myapp 文件夹内容到容器的 /app 目录
COPY . /app

# 安装应用所需的依赖
RUN pip install --no-cache-dir flask

# 定义环境变量
ENV NAME World

# 运行应用
CMD ["python", "app.py"]

构建镜像:

docker build -t myapp:latest .

运行容器:部署运行应用程序

使用 docker run 命令启动容器:

docker run -d -p 8080:80 myapp:latest
  • -d:后台运行容器。
  • -p:端口映射,将宿主机的 8080 端口映射到容器的 80 端口。

打开浏览器,访问 http://localhost:8080,可以看到 "Hello, World!" 页面。

总结,通过以上步骤,我们成功地将一个简单的 Python Web 应用程序使用 Docker 进行了容器化部署。这为后续更复杂的项目提供了基础。

这篇关于Docker容器化部署入门:新手必读指南的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!