Docker容器

Docker环境部署教程:新手入门详解

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

本文详细介绍了Docker环境部署教程,涵盖了Docker的基本概念、安装方法、基本操作和常用命令。文章还深入探讨了Docker的环境配置,包括配置文件和环境变量设置,并提供了部署简单Web应用和数据库服务的实例。此外,还介绍了Docker Compose的基础使用方法,帮助读者更好地理解和使用Docker。

Docker简介

什么是Docker

Docker 是一个开源的应用容器引擎,它可以让开发者将应用程序和其依赖项打包到一个轻量级、可移植的容器中,以便在任何环境中一致地运行。Docker 容器运行在通用 Linux 内核的主机操作系统上,这使得它们在资源消耗、启动速度和性能方面都优于虚拟机。

Docker的优势

  1. 轻量级和快速:Docker 容器比虚拟机更轻量,只需要占用运行时所需的资源,而不需要整个操作系统。启动速度更快。
  2. 可移植性:Docker 容器可以在任何安装了 Docker 的环境中运行,无论是在本地机器、虚拟机还是云服务提供商。
  3. 一致性和隔离性:通过容器化,开发和生产环境保持一致,减少因环境差异导致的问题。每个容器都是隔离的,不会相互干扰。
  4. 资源利用:Docker 容器可以共享主机的操作系统,这样可以更有效地使用资源,同时运行更多的应用实例。
  5. 易于扩展:Docker 容器可以轻松地进行扩展,支持横向扩展以应对更高的负载需求。

Docker的基本概念

  • 镜像(Image):镜像是容器的源文件,是一个只读模板,包含应用程序运行所必需的代码、库、资源和配置。
  • 容器(Container):容器是镜像的运行实例,它提供一个轻量级、隔离的执行环境。容器具有镜像的所有特征,同时提供一个运行时环境来运行代码。
  • 仓库(Registry):仓库是用来存储镜像的地方,最常用的仓库是 Docker Hub,它是一个基于云的存储库,可以注册账户后上传或下载镜像。
  • Dockerfile:Dockerfile 是一个文本文件,包含了一系列命令,用于描述如何构建 Docker 镜像。

示例代码:创建Dockerfile

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

# 设置工作目录
WORKDIR /app

# 将当前目录下的所有文件复制到容器内 /app 目录下
COPY . /app

# 安装所需的依赖
RUN pip install --no-cache-dir -r requirements.txt

# 容器启动时执行的命令
CMD ["python", "app.py"]
安装Docker

在Windows上安装Docker

  1. 访问 Docker 官方网站(https://www.docker.com/products/docker-desktop)下载 Windows 版本的 Docker Desktop。
  2. 运行安装程序并按照提示完成安装。
  3. 在安装过程中,启用 Windows 的 Hyper-V 和容器功能。
  4. 安装完成后,启动 Docker Desktop 应用程序。

在Mac上安装Docker

  1. 访问 Docker 官方网站(https://www.docker.com/products/docker-desktop)下载 Mac 版本的 Docker Desktop。
  2. 运行安装程序并按照提示完成安装。
  3. 在安装完成后,启动 Docker Desktop 应用程序。

在Linux上安装Docker

以 Ubuntu 为例:

  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 的 APT 仓库:
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  5. 更新包列表,安装 Docker:
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
  6. 验证 Docker 安装是否成功:
    sudo docker run hello-world
Docker基本操作

拉取镜像

使用 docker pull 命令从 Docker Hub 拉取镜像:

docker pull nginx:latest

运行容器

使用 docker run 命令运行容器:

docker run -d --name my-nginx -p 8080:80 nginx:latest
  • -d:后台运行容器
  • --name:指定容器的名称
  • -p:端口映射,将容器内的 80 端口映射到主机的 8080 端口

查看容器状态

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

docker ps

使用 docker ps -a 命令查看所有容器,包括已停止的容器:

docker ps -a

停止和删除容器

使用 docker stop 命令来停止正在运行的容器:

docker stop my-nginx

使用 docker rm 命令来删除容器:

docker rm my-nginx
Docker常用命令

常用命令详解

  • docker images:列出所有本地镜像
  • docker inspect:查看容器或镜像的详细信息
  • docker logs:查看容器的日志输出
  • docker commit:将容器保存为新的镜像

常用命令示例

查看本地镜像:

docker images

查看容器的详细信息:

docker inspect <container-id>

查看容器的日志输出:

docker logs <container-id>

将容器保存为新的镜像:

docker commit <container-id> my-custom-image
Docker环境配置

Docker配置文件介绍

Docker 配置文件通常位于 /etc/docker/daemon.json,用于指定 Docker 的一些全局设置。例如,可以设置 Docker 的监听地址和存储位置:

{
    "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"],
    "storage-driver": "overlay2",
    "log-level": "warn"
}

Docker环境变量设置

可以使用环境变量来配置 Docker 的运行时行为。例如,在启动容器时设置环境变量:

docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=mydb -d --name my-mysql mysql:5.7

Docker网络配置

Docker 支持多种网络模式,包括 bridgehostoverlaynone。可以通过 docker network 命令来创建和管理网络。

创建一个桥接网络:

docker network create my-bridge-network

将容器连接到一个网络:

docker run -d --name my-nginx --network my-bridge-network -p 8080:80 nginx:latest

查看网络列表:

docker network ls

查看网络详细信息:

docker network inspect my-bridge-network

示例代码:在Dockerfile中设置环境变量

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

# 设置环境变量
ENV PYTHONUNBUFFERED=1

# 设置工作目录
WORKDIR /app

# 将当前目录下的所有文件复制到容器内 /app 目录下
COPY . /app

# 安装所需的依赖
RUN pip install --no-cache-dir -r requirements.txt

# 容器启动时执行的命令
CMD ["python", "app.py"]
Docker实践案例

部署一个简单的Web应用

假设有一个简单的 Flask 应用,首先创建一个 Flask 应用:

# 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=8080)

创建一个 requirements.txt 文件,列出应用依赖:

Flask==2.0.1

创建 Dockerfile,将应用打包成镜像:

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

# 设置工作目录
WORKDIR /app

# 将当前目录下的所有文件复制到容器内 /app 目录下
COPY . /app

# 安装所需的依赖
RUN pip install --no-cache-dir -r requirements.txt

# 容器启动时执行的命令
CMD ["python", "app.py"]

构建并运行容器:

docker build -t my-flask-app .
docker run -d --name my-flask-app -p 8080:8080 my-flask-app

部署数据库服务

以 MySQL 数据库为例,部署一个 MySQL 数据库容器:

docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=mydb -d mysql:5.7

连接到 MySQL 数据库:

docker exec -it my-mysql mysql -uroot -p

在 MySQL 数据库中创建一个新的数据库:

CREATE DATABASE mydb;

创建一个简单的表:

CREATE TABLE mydb.users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(150) NOT NULL
);

Docker Compose基础使用

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。首先创建一个 docker-compose.yml 文件:

version: '3'
services:
  web:
    image: nginx:latest
    container_name: my-nginx
    ports:
      - "8080:80"
    depends_on:
      - db
  db:
    image: mysql:5.7
    container_name: my-mysql
    environment:
      MYSQL_ROOT_PASSWORD: my-secret-pw
      MYSQL_DATABASE: mydb

使用 Docker Compose 启动容器:

docker-compose up -d

停止并清除容器:

docker-compose down
总结

本文介绍了 Docker 的基本概念、安装方法、基本操作、常用命令、环境配置及一些实践案例。通过本文,你可以了解到如何安装 Docker、如何使用 Docker 部署应用和数据库服务,以及如何使用 Docker Compose 管理多容器应用。希望这些内容能帮助你更好地理解和使用 Docker。

这篇关于Docker环境部署教程:新手入门详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!