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

冉升9个月前行业资讯398

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


相关文章

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

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

1.3 请求限流:在簇点链路后面点击流控按钮,即可对其做限流配置:在弹出的菜单中填写:这样就把查询购物车列表这个簇点资源的流量限制在了每秒 6 个,也就是最大 QPS 为 6。1.4 线程隔离:限流可...

linux之危险操作

在 Linux 中,某些命令可以对系统造成不可逆的影响,尤其是当以 root 用户(或使用 sudo)执行时。以下是一些不推荐轻易执行的高危命令,除非你非常清楚它们的作用和潜在的后果:rm -rf /...

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

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

一、微服务保护保证服务运行的健壮性,避免级联失败导致的雪崩问题,就属于微服务保护。为了方便讲解,下面的商品服务是故障方,购物车服务是故障调用方。1.1 微服务保护方案:微服务保护的方案有很多,比如:请...

MySQL运维之分库分表与读写分离

MySQL运维之分库分表与读写分离

分库分表1.介绍问题分析随着互联网以及移动互联网的发展,应用系统的数据量也是成指数式增长,若采用单数据库进行数据存储,存在以下性能瓶颈:IO瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率较...

Docker——Windows版本Docker安装

Docker——Windows版本Docker安装

一、简介一、简介  1.1 Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像Docker应用运行在...

MySQL运维之日志与主从复制

MySQL运维之日志与主从复制

一、日志1.错误日志错误日志是MySQL中最重要的日志之一,它记录了当mysql启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此...

发表评论    

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