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

冉升5个月前行业资讯207

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】在 CentOS 上安装 Docker 的完整指南

【Docker】在 CentOS 上安装 Docker 的完整指南

Docker 是现代软件开发中不可或缺的工具,它提供了一种轻量级的虚拟化解决方案,帮助开发者更方便地打包、分发和管理应用程序。本文将详细介绍如何在 CentOS 系统上安装 Docker,包括必要的前...

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

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

1.2 Sentinel:微服务保护的技术有很多,但在目前国内使用较多的还是 Sentinel,所以接下来我们学习 Sentinel 的使用。1.2.1 介绍和安装:Sentinel 是阿里巴巴开源的...

Linux 配置Tomcat环境(二)

Linux 配置Tomcat环境(二)

二、配置Tomcat1、创建一个Tomcat文件夹用于存放Tomcat压缩包输入指令 cd /usr/local 进入到 usr/local输入指令 ls 查看...

CentOS7 yum安装报错“Could not resolve host: mirrorlist.centos.org; Name or service not known“之解决办法(换源)

CentOS7 yum安装报错“Could not resolve host: mirrorlist.centos.org; Name or service not known“之解决办法(换源)

yum安装出现错误如下:yum install -y wget && wget -O install.sh https://download.bt.cn/install/install...

IDC:疫情下,第三方云管理服务市场逆势增长!

IDC:疫情下,第三方云管理服务市场逆势增长!

IDC预测,中国第三方云管理服务在2019年到2023年间将保持54.7%的增长率,2023年市场规模预计达到32.1亿美元。2019年第三方云管理服务市场呈现出如下特点:云管理服务成为众多服务商的战...

Docker容器——网络模式和Cgroup资源限制

Docker容器——网络模式和Cgroup资源限制

一、Docker网络(1)Docker网络实现原理Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容...

发表评论    

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