Docker容器技术基础入门(III)

本文介绍了Docker容器的操作,包括如何生成镜像、拷贝文件、查看资源使用和日志。同时,深入讲解了Docker的网络基础,如CNM架构、网络驱动选择原则以及不同类型的网络配置,如bridge、host、overlay和macvlan网络。
摘要由CSDN通过智能技术生成

目录

一、容器的相关操作

        1、将现有容器生成镜像

        2、拷贝文件到容器

        3、查看容器资源使用

        4、查看容器日志

二、Docker网络基础

        1、Docker容器网络模型

                CNM高层架构

                 CNM驱动接口

                选择Docker网络驱动的基本原则

                单主机与多主机的Docker网络

                docker run命令的网络配置用法

                docker network命令的网络配置用法


一、容器的相关操作

        1、将现有容器生成镜像

                1、利用 docker run -itd [REPOSITORY:TAG] /bin/bash 打开一个镜像

                2、利用 docker exec -it [IMAGE ID] /bin/bash 进入镜像

                3、在镜像内创建测试文档或安装服务

                4、利用 docker commit  [REPOSITORY:TAG]\[IMAGE ID] [NEWREPOSITORY:TAG] 生成新的镜像

                5、打开新镜像查看测试文档或服务是否存在

        2、拷贝文件到容器

                docker cp [FileName] [REPOSITORY:TAG]\[IMAGE ID]:[FilePath]

        3、查看容器资源使用

                docker top [REPOSITORY:TAG]\[IMAGE ID]

                docker stats [REPOSITORY:TAG]\[IMAGE ID]

        4、查看容器日志

                docker logs [REPOSITORY:TAG]\[IMAGE ID]

                        --details 显示更为详细的日志信息

                        --follow(-f) 跟踪日志输出

                        --since 显示自某个开始时间的所有日志

                        --tail 仅列出最新的N条容器日志

                        --timestamps(-t) 显示时间戳

                        --until 显示到某个截止时间的所有日志

二、Docker网络基础

        1、Docker容器网络模型

                

                CNM高层架构

                        沙箱(SandBox):包含容器的网络栈配置,涉及容器的接口、路由表和DNS设置的管理

                        端点(Endpoint):将沙箱连接到网络

                        网络(Network):CNM并没有定义OSI模型中的网络层,这里的网络可以由Linux网桥、虚拟局域网(Virtual Local Area Network,VLAN)等来实现

                

                 CNM驱动接口

                        网络驱动(Network Drivers):Docker网络驱动提供网络运行的具体实现

                        IPAM(IP地址管理)驱动:Docker有一个内置的IP地址管理驱动

                Docker本地网络驱动

                        bridge:桥接网络,这是默认的网络驱动程序

                        host:主机网络,通过该驱动容器可以使用主机的网络栈

                        overlay:该驱动组合使用本地Linux桥接网络和VxLAN技术,在物理网络架构之上叠加一个容器之间的通信连接

                        macvlan:该驱动使用macvlan桥接模式建立容器接口和主机接口之间的连接,为容器提供在物理网络中可路由的IP地址

                        none:表示关闭容器的所有网络连接。

                选择Docker网络驱动的基本原则

                        用户自定义桥接网络最适合用于同一个Docker主机上运行的多个容器之间需要通信的场景

                        host网络最适用于当网络栈不能与Docker主机隔离,而容器的其他方面需要被隔离的场景

                        overlay网络适用于不同Docker主机上运行的容器需要通信的场景,或者多个应用程序通过Swarm集群服务一起工作的场景

                        macvlan网络适用于从虚拟机迁移过来的场景,或者容器需要像网络上的物理机一样,拥有独立MAC地址的场景。 第三方网络插件适用于将Docker与专用网络栈进行集成的场景

                单主机与多主机的Docker网络

                        从覆盖范围上,可以将Docker网络划分为单主机的网络和跨主机的网络

                        Docker无论是在单主机上进行部署,还是在多主机的集群上部署,都需要和网络打交道

                        对于大多数单主机部署来说,可以使用网络在容器之间和容器与主机之间进行数据交换

                        由于单主机的能力有限,实际应用中多主机部署通常是很有必要的。

                docker run命令的网络配置用法

                        使用选项--network设置Docker容器要连接的网络

                        默认Docker守护进程会为容器连接的每个Docker网络分配一个IP地址

                        通过选项--network启动容器时,可以使用--ip或--ip6选项明确指定分配给容器的IP地址

                        通过docker network connect命令将现有的容器连接到另一个不同的网络时,可以使用--ip或--ip6选项指定容器在该网络上的IP地址。

                        默认情况下,容器的MAC地址是基于其IP地址生成的

                        可以通过--mac-address选项为容器指定一个MAC地址

                        默认情况下,容器继承Docker守护进程的DNS设置

                        --dns选项为容器设置DNS服务器的IP地址

                        --dns-search选项为容器指定一个DNS搜索域,用于搜索非全称主机名

                        --hostname选项为容器指定自定义的主机名

                        发布端口和连接其他容器只在默认的桥接模式下工作

                        通过docker run命令创建容器时使用选项-p(--publish)或-P(--publish-all)来设置对外发布的端口

                docker network命令的网络配置用法

                        docker network connect:将容器连接到指定的网络

                        docker network create:创建一个网络

                        docker network disconnect:断开容器与指定网络的连接

                        docker network inspect:显示一个或多个网络的详细信息

                        docker network ls:显示网络列表

                        docker network prune:删除所有未使用的网络

                        docker network rm:删除一个或多个网络。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值