新闻动态

良好的口碑是企业发展的动力

docker 教程

发布时间:2025-03-26 08:08:20 点击量:26
哈尔滨网站建设价格

 

Docker 教程:从入门到精通

1. Docker 简介

Docker 是一个开源的应用容器引擎,基于 Go 语言开发。它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 容器与虚拟机不同,容器不需要包含完整的操作系统,而是共享宿主机的操作系统内核,因此更加轻量级和高效。

1.1 Docker 的优势

  • 轻量级:容器共享宿主机的内核,不需要额外的操作系统,因此启动速度快,资源占用少。
  • 可移植性:容器可以在任何支持 Docker 的平台上运行,确保了应用在不同环境中的一致性。
  • 隔离性:每个容器都有自己的文件系统、网络和进程空间,互不干扰。
  • 可扩展性:通过 Docker Compose 和 Kubernetes 等工具,可以轻松管理多个容器,实现应用的扩展和负载均衡。

2. Docker 的核心概念

2.1 镜像(Image)

镜像是 Docker 容器的基础,它包含了运行应用所需的所有文件和依赖。镜像是一个只读的模板,可以用来创建容器。镜像可以通过 Dockerfile 来构建,也可以从 Docker Hub 等镜像仓库中下载。

2.2 容器(Container)

容器是镜像的运行实例。容器可以被启动、停止、删除和暂停。每个容器都是独立的,拥有自己的文件系统、网络和进程空间。容器与宿主机共享内核,但拥有自己的用户空间。

2.3 仓库(Repository)

仓库是用于存储和分发镜像的地方。Docker Hub 是最常用的公共仓库,用户可以在其中找到大量的官方和社区维护的镜像。用户也可以搭建私有的 Docker 仓库,用于存储和分享自己的镜像。

2.4 Dockerfile

Dockerfile 是一个文本文件,包含了一系列的指令,用于构建 Docker 镜像。通过 Dockerfile,用户可以定义镜像的构建过程,包括基础镜像的选择、文件的复制、环境变量的设置、命令的执行等。

3. Docker 的安装与配置

3.1 安装 Docker

Docker 支持多种操作系统,包括 Linux、Windows 和 macOS。以下是在 Ubuntu 系统上安装 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. 更新包列表并安装 Docker:

    sudo apt-get update
    sudo apt-get install docker-ce
  6. 验证 Docker 是否安装成功:

    sudo docker --version

3.2 配置 Docker

安装完成后,可以通过修改 /etc/docker/daemon.json 文件来配置 Docker。例如,可以配置镜像加速器、日志驱动、存储驱动等。

4. Docker 的基本操作

4.1 拉取镜像

从 Docker Hub 拉取镜像的命令如下:

docker pull <image_name>

例如,拉取 Ubuntu 镜像:

docker pull ubuntu

4.2 运行容器

使用 docker run 命令可以基于镜像创建并启动容器。例如,运行一个 Ubuntu 容器并进入交互式 shell:

docker run -it ubuntu /bin/bash

其中,-i 表示交互式操作,-t 表示分配一个伪终端。

4.3 查看容器

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

docker ps

如果要查看所有容器(包括已停止的),可以添加 -a 选项:

docker ps -a

4.4 停止和删除容器

停止容器的命令如下:

docker stop <container_id>

删除容器的命令如下:

docker rm <container_id>

4.5 查看镜像

使用 docker images 命令可以查看本地已有的镜像:

docker images

4.6 删除镜像

删除镜像的命令如下:

docker rmi <image_id>

5. 使用 Dockerfile 构建镜像

5.1 编写 Dockerfile

以下是一个简单的 Dockerfile 示例,用于构建一个运行 Python 应用的镜像:

# 使用官方的 Python 镜像作为基础镜像
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

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

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

# 暴露端口
EXPOSE 80

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

5.2 构建镜像

在 Dockerfile 所在的目录下,使用以下命令构建镜像:

docker build -t my-python-app .

其中,-t 选项用于指定镜像的名称和标签。

5.3 运行自定义镜像

构建完成后,可以使用以下命令运行自定义镜像:

docker run -p 4000:80 my-python-app

其中,-p 选项用于将宿主机的 4000 端口映射到容器的 80 端口。

6. Docker Compose 的使用

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过 docker-compose.yml 文件,可以定义应用的服务、网络和卷等配置。

6.1 编写 docker-compose.yml

以下是一个简单的 docker-compose.yml 示例,用于运行一个包含 Web 服务和数据库的多容器应用:

version: '3'
services:
  web:
    image: my-python-app
    ports:
      - "4000:80"
    depends_on:
      - db
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: example

6.2 启动应用

docker-compose.yml 所在的目录下,使用以下命令启动应用:

docker-compose up

6.3 停止应用

使用以下命令停止并删除应用:

docker-compose down

7. Docker 网络与存储

7.1 Docker 网络

Docker 提供了多种网络模式,包括 bridgehostnone 等。默认情况下,容器使用 bridge 网络模式,每个容器都有自己的 IP 地址,并且可以通过容器名称进行通信。

7.2 Docker 存储

Docker 提供了卷(Volume)和绑定挂载(Bind Mount)两种方式来管理容器的持久化数据。卷是 Docker 管理的存储,而绑定挂载则是将宿主机的目录挂载到容器中。

8. 总结

Docker 是一个强大的工具,能够显著简化应用的开发、测试和部署过程。通过本教程,你已经了解了 Docker 的基本概念、安装与配置、基本操作、Dockerfile 的使用、Docker Compose 的使用以及网络与存储的管理。希望这些知识能够帮助你在实际项目中更好地使用 Docker,提升开发效率和应用的可靠性。

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:dm@cn86.cn进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。本站原创内容未经允许不得转载。
上一篇: idea archetype
下一篇: 登录鉴权