侧边栏壁纸
博主头像
智栈工场 博主等级

行动起来,活在当下

  • 累计撰写 10 篇文章
  • 累计创建 2 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Docker 技术入门与实践指南

智栈工场
2024-12-17 / 0 评论 / 0 点赞 / 3 阅读 / 0 字 / 正在检测是否收录...

Docker 技术入门与实践指南

引言

Docker 是一种开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器或 Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

本文将详细介绍 Docker 的基本概念、安装方法、基本命令和实际应用案例,帮助初学者快速上手 Docker,并了解如何在实际项目中使用 Docker。

1. Docker 基本概念

1.1 容器与虚拟机

  • 容器:容器是一种轻量级、可移植、自包含的软件打包技术,使应用可以在几乎任何地方以相同的方式运行。容器与宿主机共享内核,但通过命名空间和控制组等技术实现了资源的隔离。
  • 虚拟机:虚拟机通过模拟完整的硬件环境来运行操作系统,每个虚拟机都有自己的操作系统,因此资源消耗相对较大,启动时间也较长。

1.2 Docker 组件

  • Docker 客户端:用户通过 Docker 客户端与 Docker 服务端进行交互,执行命令。
  • Docker 服务端:Docker 服务端运行在宿主机上,负责管理容器的创建、运行和停止。
  • Docker 镜像:Docker 镜像是一个只读的模板,包含了启动容器所需的文件系统和配置信息。
  • Docker 容器:容器是从镜像创建的运行实例,可以被启动、停止和删除。容器是独立的、隔离的运行环境。
  • Docker 仓库:Docker 仓库是集中存放镜像文件的场所,可以是本地仓库,也可以是公共仓库,如 Docker Hub。

2. 安装 Docker

Docker 支持多种操作系统,包括 Linux、Windows 和 macOS。以下是不同操作系统的安装方法:

2.1 Linux(以 Ubuntu 为例)

# 更新软件包索引
sudo apt-get update

# 安装必要的依赖包
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

# 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 设置 Docker 稳定版仓库
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 更新软件包索引
sudo apt-get update

# 安装 Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io

2.2 Windows

  1. 访问 Docker 官方网站 下载 Docker Desktop for Windows。
  2. 安装下载的安装程序,按照提示完成安装。

2.3 macOS

  1. 访问 Docker 官方网站 下载 Docker Desktop for Mac。
  2. 安装下载的安装程序,按照提示完成安装。

3. Docker 基本命令

以下是一些常用的 Docker 命令,帮助你管理和操作容器和镜像:

3.1 获取 Docker 镜像

# 从 Docker Hub 获取官方的 Ubuntu 镜像
docker pull ubuntu

3.2 运行容器

# 在容器中运行一个简单的命令
docker run ubuntu echo "Hello, Docker!"

# 以交互模式启动一个 Ubuntu 容器
docker run -it ubuntu

3.3 查看容器

# 查看正在运行的容器
docker ps

# 查看所有容器(包括已停止的)
docker ps -a

3.4 停止和删除容器

# 停止一个正在运行的容器
docker stop <容器ID>

# 删除一个已停止的容器
docker rm <容器ID>

3.5 查看镜像

# 查看本地所有的镜像
docker images

3.6 删除镜像

# 删除一个本地镜像
docker rmi <镜像ID>

4. 实际应用案例

4.1 使用 Docker 运行一个 Web 应用

假设你有一个简单的 Python Web 应用,使用 Flask 框架编写。我们可以通过以下步骤将这个应用容器化:

  1. 编写 Dockerfile

    在项目根目录下创建一个 Dockerfile 文件,内容如下:

    # 使用官方的 Python 基础镜像
    FROM python:3.8-slim
    
    # 设置工作目录
    WORKDIR /app
    
    # 复制项目文件到容器中
    COPY . /app
    
    # 安装依赖
    RUN pip install -r requirements.txt
    
    # 暴露端口
    EXPOSE 5000
    
    # 运行应用
    CMD ["python", "app.py"]
    
  2. 构建镜像

    在项目根目录下执行以下命令,构建 Docker 镜像:

    docker build -t my-flask-app .
    
  3. 运行容器

    使用以下命令启动容器,并将容器的 5000 端口映射到主机的 5000 端口:

    docker run -d -p 5000:5000 my-flask-app
    
  4. 访问应用

    打开浏览器,访问 http://localhost:5000,你应该能看到你的 Flask 应用。

5. 最佳实践

5.1 使用 Docker Compose

Docker Compose 是一个工具,用于定义和运行多容器 Docker 应用程序。通过一个 YAML 文件,你可以配置应用程序的服务。然后,使用一个命令,可以从配置中创建并启动所有服务。

  1. 编写 docker-compose.yml 文件

    version: '3'
    services:
      web:
        build: .
        ports:
          - "5000:5000"
      redis:
        image: "redis:alpine"
    
  2. 启动服务

    docker-compose up
    

5.2 使用 Docker 网络

Docker 网络允许容器之间通过网络进行通信。你可以创建自定义网络,以便容器之间更安全地通信。

  1. 创建自定义网络

    docker network create my-network
    
  2. 启动容器并连接到网络

    docker run -d --name web --network my-network my-flask-app
    docker run -d --name redis --network my-network redis:alpine
    

6. 结论

Docker 是一个强大的工具,可以帮助开发者轻松地打包、部署和管理应用。通过本文的介绍,你已经了解了 Docker 的基本概念、安装方法、基本命令和实际应用案例。希望这些内容能帮助你在实际项目中更好地使用 Docker。

7. 参考资料

希望这篇文章对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言!

0

评论区