Docker容器

Docker环境部署学习:从入门到实践

本文主要是介绍Docker环境部署学习:从入门到实践,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
概述

本文详细介绍了Docker环境部署学习的全过程,从Docker的安装步骤到基本概念,再到常用命令和环境配置,帮助读者全面掌握Docker的使用方法。文章还通过实战案例展示了如何部署一个简单的Web应用,进一步加深了对Docker环境部署学习的理解。Docker环境部署学习不仅涵盖了理论知识,还包括了实际操作和配置技巧。

Docker环境部署学习:从入门到实践
Docker简介与安装

什么是Docker

Docker 是一个开源的应用容器引擎,它让开发者可以将应用及其依赖封装到一个可移植的容器中。Docker 使用客户端-服务器 (CLI-Server) 架构,客户端可以发送请求到 Docker 守护进程 (Docker daemon)。守护进程负责处理这些请求,并返回应答。Docker 容器是独立的、轻量级的、可移植的、自包含的运行环境,用于运行应用。Docker 为应用提供一个标准的生命周期管理,从开发、测试到部署。

Docker的安装步骤

安装 Docker 的步骤因操作系统而异。这里以安装在 Ubuntu 上为例。

  1. 更新系统包
    sudo apt-get update
    sudo apt-get upgrade
  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的APT仓库
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  5. 更新APT包索引
    sudo apt-get update
  6. 安装Docker CE(社区版)
    sudo apt-get install docker-ce
  7. 启动Docker服务
    sudo systemctl start docker
  8. 设置Docker开机自启
    sudo systemctl enable docker
  9. 验证Docker是否安装成功
    sudo docker --version

验证Docker安装是否成功

安装完成后,运行以下命令验证 Docker 安装是否成功:

sudo docker --version

输出类似:

Docker version 20.10.0, build e790763

这表明 Docker 已经成功安装。

Docker基本概念

Docker镜像

Docker 镜像是一个只读模板,用于创建 Docker 容器。镜像包含运行一个容器时需要的所有文件和配置。Docker 镜像通过 Dockerfile 来构建。

Dockerfile 示例

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

# 设置工作目录
WORKDIR /app

# 复制当前目录下的app.py文件到镜像的工作目录下
COPY app.py /app

# 安装运行程序所需的依赖
RUN pip install --no-cache-dir Flask

# 指定运行时程序的入口
CMD ["python", "./app.py"]

Docker容器

Docker容器是镜像的运行实例。容器是轻量级的、独立的、可移植的运行环境,用于运行应用。容器从镜像创建时获得其环境和配置。

Docker仓库

Docker仓库是存放镜像的地方,Docker Hub 是官方提供的公共仓库,用户可以在其中查找和上传镜像。此外,也可以使用私有仓库来存储和分发镜像。

Docker常用命令

创建与运行容器

使用 Dockerfile 构建镜像后,可以通过以下命令来创建并运行容器:

# 构建镜像
docker build -t myapp .

# 启动容器
docker run -d -p 4000:5000 myapp
# 启动容器并使用容器ID或容器名称查看日志
docker logs <container_id_or_name>

查看容器状态

查看正在运行的容器:

docker ps

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

docker ps -a

管理镜像

列出所有本地镜像:

docker images

删除镜像:

docker rmi <image_id>

从 Docker Hub 拉取镜像:

docker pull nginx:latest

删除所有不再使用的镜像:

docker image prune
Docker环境配置

Docker环境变量设置

Docker容器可以通过在启动命令中设置环境变量来改变其运行时的行为。环境变量可以使用 -e 选项来定义。

示例

docker run -e ENV_VAR=value my_image

Docker网络配置

Docker 提供了多种网络模式,包括桥接网络、主机网络、和容器网络(也称为用户自定义网络)。其中,用户自定义网络允许容器间通过网络进行通信,而无需直接使用宿主机的网络接口。

创建用户自定义网络

docker network create my_network

启动容器并关联网络

docker run --network=my_network --name=my_container -d my_image

Docker配置文件详解

Docker 使用 daemon.json 文件来配置 Docker 守护进程。该文件通常位于 /etc/docker/daemon.json

示例配置文件

{
  "exec-ids": ["a", "b"],
  "hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"],
  "insecure-registries": ["myregistry.example.com"],
  "mtu": 1400,
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override青山程序猿:
在"Docker容器的持久化存储"部分添加了具体的使用示例:

### Docker容器的持久化存储

#### 数据卷的使用
数据卷是 Docker 容器中持久存储数据的机制。数据卷可以不受容器生命周期的影响,即使容器被销毁,数据卷中的数据仍然保留。

**创建并使用数据卷**:
```bash
docker run -v /host:/container my_image

数据卷容器的创建与管理

数据卷容器专门用于存储数据,可以被其他容器挂载。创建一个数据卷容器:

docker create --name data_volumes --volume /data alpine

启动并挂载数据卷容器中的数据卷:

docker run -it --volumes-from data_volumes my_image

容器间数据共享

通过使用数据卷,多个容器可以共享相同的数据卷。这样,即使容器被销毁,数据依然可以被其他容器访问。

示例

# 创建数据卷容器
docker create --name my_data --volume /data alpine

# 启动第一个容器并挂载数据卷
docker run -it --volumes-from my_data my_image

# 启动第二个容器并挂载相同的数据卷
docker run -it --volumes-from my_data my_image
实战案例:部署一个简单的Web应用

选择合适的Docker镜像

选择一个适合应用的官方或第三方Docker镜像。这里以使用 Python Flask 应用为例,选择 python:3.8-slim 作为基础镜像。

配置Dockerfile

根据应用特性编写相应的 Dockerfile。以下是一个简单的 Flask 应用的 Dockerfile 示例:

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

# 设置工作目录
WORKDIR /app

# 复制应用代码到镜像的工作目录
COPY app.py /app

# 安装运行程序所需的依赖
RUN pip install --no-cache-dir Flask

# 指定运行时程序的入口
CMD ["python", "./app.py"]

构建并运行应用

  1. 构建 Docker 镜像:

    docker build -t my_flask_app .
  2. 运行容器:

    docker run -d -p 4000:5000 my_flask_app
  3. 访问应用:
    打开浏览器,访问 http://localhost:4000,查看 Flask 应用是否正常运行。
这篇关于Docker环境部署学习:从入门到实践的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!