【Docker 】深入探索 Docker :高阶操作与配置设置(上)

冉升7个月前行业资讯331

Docker 是现代应用开发和部署的重要工具,能够帮助开发者轻松创建、管理和部署容器化应用。除了基本的命令外,掌握高阶操作和配置设置将大大提高您的工作效率和应用性能。本文将介绍一些 Docker 的高阶操作,包括网络管理、数据持久化、容器资源设置、监控容器状态和性能、日志管理等。


一、修改 Docker 配置文件

Docker的行为和性能可以通过修改其配置文件来调整。一般情况下,Docker的默认配置文件位于 /etc/docker/daemon.json。以下是一些常见的配置选项:


示例配置:

{
  "storage-driver": "overlay2",
  "log-level": "info",
  "insecure-registries": ["myregistry.local:5000"],
  "data-root": "/var/lib/docker"
}

配置项解释:


storage-driver: 指定Docker使用的存储驱动。常见选项包括 overlay2, aufs, btrfs 等。

log-level: 设置日志级别,可以是 debug, info, warn, error。

insecure-registries: 指定不安全的注册表地址,适用于开发环境。

data-root: 指定Docker数据存储的根目录。

1.1 配置镜像源

在某些地区,Docker 官方镜像源可能访问速度较慢,因此可以配置国内的镜像源,以提高拉取镜像的速度。以下是配置镜像源的步骤:


步骤:

1.创建或编辑 Docker 配置文件:

配置文件通常位于 /etc/docker/daemon.json。


sudo nano /etc/docker/daemon.json


2.添加镜像源配置:

可以选择以下常用的镜像源之一:


镜像源说明
阿里云https://.mirror.aliyuncs.com
网易云https://hub-mirror.c.163.com
腾讯云https://mirrors.cloud.tencent.com

示例配置(以阿里云为例):

{
  "registry-mirrors": ["https://<your-aliyun-id>.mirror.aliyuncs.com"]
}

3.重启 Docker 服务

sudo systemctl restart docker
  1. 4.验证配置

检查配置是否生效:

docker info | grep "Registry Mirrors"

1.2 配置存储驱动

Docker 支持多种存储驱动,选择合适的存储驱动可以优化容器性能和存储效率。修改存储驱动同样在 daemon.json 中进行配置。

示例配置

{
  "storage-driver": "overlay2"
}

二、Docker 网络配置

Docker 提供了多种网络模式,包括 bridgehostnone 和自定义网络。通过配置网络,可以实现容器之间的通信及外部访问。

网络模式说明

模式描述
bridge默认模式,容器通过虚拟网桥进行通信
host容器共享主机的网络栈
none容器没有网络
overlay跨多个 Docker 主机的网络

2.1 创建自定义网络

创建一个自定义桥接网络:

docker network create my_bridge_network

2.2 连接和断开网络

将容器连接到网络:

docker network connect my_bridge_network my_container

从网络中断开容器:

docker network disconnect my_bridge_network my_container

2.3 查看网络信息

列出所有网络:

docker network ls

查看特定网络的详细信息:

docker network inspect my_bridge_network

2.4 优化网络性能

配置容器的网络模式为 host,以减少网络延迟。

示例

docker run --network host -d --name my_app my_image

示例:创建自定义网络

创建一个名为 my_bridge 的自定义桥接网络,并在该网络上启动两个容器。

步骤

  1. 1.创建自定义网络

docker network create my_bridge
  1. 2.启动容器并连接到自定义网络

docker run -d --name container1 --network my_bridge nginx
docker run -d --name container2 --network my_bridge nginx
  1. 3.验证网络连接

在 container1 中 ping container2

docker exec -it container1 ping container2

三、数据卷与持久化存储

Docker 容器中的数据是临时的,使用卷 (Volumes) 可以实现数据的持久化。这使得数据在容器重启或删除后仍然存在。

3.1 创建和使用卷

  1. 创建卷

使用 docker volume create 命令创建数据卷。

docker volume create my_volume
  1. 挂载卷到容器

在运行容器时挂载数据卷,以实现数据的持久化:

docker run -d -v my_volume:/data --name my_container busybox

3.2 查看和管理卷

  1. 1.查看所有卷

使用以下命令查看系统中的所有 Volume:

docker volume ls
  1. 2.挂载卷到容器

在运行容器时挂载数据卷,以实现数据的持久化:

docker run -d -v my_volume:/data --name my_container busybox

3.2 查看和管理卷

  1. 1.查看所有卷

使用以下命令查看系统中的所有 Volume:

docker volume ls
  1. 2.查看卷的详细信息
    使用以下命令查看卷的详细信息:

docker volume inspect my_volume
  1. 3.删除卷
    删除不再需要的卷:

docker volume rm my_volume

示例:创建卷并挂载到容器

步骤

  1. 1.创建卷

  2. docker volume create my_volume
  3. 2.挂载卷到容器

  4. docker run -d -v my_volume:/data --name my_container busybox
  5. 3.验证卷是否挂载成功


  6. docker exec -it my_container shls /data

3.3 备份与恢复卷数据

备份 Docker 卷

可以使用 tar 命令备份卷中的数据:

docker run --rm -v my_volume:/data -v $(pwd):/backup busybox tar cvf /backup/my_volume_backup.tar /data

恢复 Docker 卷

从备份中恢复数据的命令如下:

docker run --rm -v my_volume:/data -v $(pwd):/backup busybox sh -c "cd /data && tar xvf /backup/my_volume_backup.tar --strip 1"

————————————————

本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!  

云掣基于多年在运维领域的丰富时间经验,编写了《云运维服务白皮书》,欢迎大家互相交流学习:

《云运维服务白皮书》下载地址:https://fs80.cn/v2kbbq

想了解更多大数据运维托管服务、数据库运维托管服务、应用系统运维托管服务的的客户,欢迎点击云掣官网沟通咨询:https://yunche.pro/?t=shequ


相关文章

Docker 常用命令

Docker 常用命令

 一、Docker 基础命令1、启动 dockersystemctl start docker2、关闭 dockersystemctl stop docker3、重启 dockersyste...

运维初入门之认识运维,运维日常的工作都在干什么

运维初入门之认识运维,运维日常的工作都在干什么

运维是指系统运维,是指负责维护、管理和优化计算机系统和网络设备的工作。运维日常的工作主要包括系统监控、故障处理、性能调优、安全防护、备份和恢复、资源规划等多个方面。以下是对运维日常工作进行详细说明的2...

Docker--Docker Registry(镜像仓库)

Docker--Docker Registry(镜像仓库)

什么是Docker Registry?镜像仓库(Docker Registry)是Docker生态系统中用于存储、管理和分发Docker镜像的关键组件。镜像仓库主要负责存储Docker镜像,这些镜像包...

微服务保护和分布式事务(5)

微服务保护和分布式事务(5)

2.3 XA 模式:Seata 支持四种不同的分布式事务解决方案:XATCCATSAGA这里我们以XA模式和AT模式来给大家讲解其实现原理。XA 规范是 X/Open 组织定义的分布式事务处理(DTP...

【Docker】在 Ubuntu 上安装 Docker 的详细指南

【Docker】在 Ubuntu 上安装 Docker 的详细指南

Docker 是一个开源的平台,可以让开发者打包应用及其依赖项为一个可移植的容器。本文将详细介绍如何在 Ubuntu 上安装 Docker,包括安装步骤、常见命令以及一些注意事项。一、准备工...

Docker: ubuntu系统下Docker的安装

Docker: ubuntu系统下Docker的安装

安装依赖操作系统版本Ubuntu Kinetic 22.10Ubuntu Jammy 24.04 (LTS)Ubuntu Jammy 22.04 (LTS)Ubuntu Focal 20.04 (LT...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。