目录

对外发布服务

概念

端口映射语法:

容器卷

作用

命令:

容器网络通信

docker的网络通信模式:

命令:

微服务管理

概念

优点:

docker Compose工具

概念

命令:

容器服务编排示例


对外发布服务

概念

实现容器端口与宿主机的端口进行映射绑定

从而把宿主机变成对应的服务,不用关心容器的IP地址

每个端口都只能和一个容器绑定

绑定后,直接访问宿主机的 IP 地址即可

端口映射语法:

docker run -p [可选IP]:宿主机端口:容器端口(可多个) 镜像:标签

容器卷

作用

给容器保存数据

修改多个容器中的数据

多容器之间数据共享和同步

频繁更改数据文件与配置文件

docker可以映射宿主机文件目录到容器中,目标对象不存在就创建,存在就覆盖。

多个容器可以映射同一个目标

命令:

启动容器时,使用-v 映射参数(可有多个)

docker run -itd -v 宿主机对象:容器内对象 镜像名称:标签

容器网络通信

docker的网络通信模式:

bridge  默认模式

host    与宿主机共享网络

none   无网络模式

container  共享其他容器的网络命名空间

自定义网络  自由创建桥接网络或overlay网络

命令:

使用网络名称空间共享网络

docker run --network=container:容器名称|ID 镜像名称:标签

示例:

docker run -itd --rm --name php --network=container:web \

                   -v /var/webroot:/usr/local/nginx/html myos:php-fpm

#--rm 容器停止后自动删除其文件系统,避免残留无用容器
 

微服务管理

概念

容器化微服务架构是将微服务架构与容器技术相结合的一种现代软件架构模式。它通过将应用程序拆分为多个小型、自治的服务,并将每个服务部署在独立的容器中,实现了更高效的资源利用和更灵活的部署方式

优点:

松耦合高内聚、高度可扩展、出色的弹性、易于部署、访问

docker Compose工具

概念

一个用于定义和运行多容器的应用的工具

使用compose可以在一个文件中配置多个容器服务,然后使用一个简单的命令就可以轻松、高效地管理配置中引用的所有容器服务。

compose项目是Docker官方的开源项目,负责实现容器集群的快速编排

compose项目核心:

服务service——一个应用的容器

项目project——由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yaml文件中定义

命令:

创建项目服务文件

vim docker-compose.yaml

name: myweb               #项目名称

version: "3"                 #语法格式版本

services:                    #关键字,定义服务

  websvc:                  #服务名称

    container_name: nginx

    image: myos:nginx

compose项目管理命令

docker compose [-f yaml文件名 | -p 项目名] 指令

指令                   说明

up                   创建项目并启动容器

is                     列出可以管理的项目

images               列出项目使用的镜像

ps                    显示项目中容器的状态

logs                 查看下项目中容器的日志

start/stop/restart      启动项目/停止项目/重启项目

down                 删除项目容器及网络

示例:docker compose -f docker-compose.yaml up -d

项目服务文件docker-compose.yaml的参数

container_name           指定容器名称

image                     指定为镜像名称或镜像 ID

ports                      暴露端口信息

volumes                数据卷,支持 [volume、bind、tmpfs、npipe]

network_mode             设置网络模式

environment              设置环境变量

restart                    容器保护策略[always、no、on-failure]

command                  覆盖容器启动后默认执行的命令

healthcheck               配置服务健康检测

depends_on  服务依赖关系 services_[started、healthy、completed_successfully]

容器服务编排示例

vim docker-compose.yaml

name: myweb

version: "3"

services:

  websvc:

    container_name: nginx

    image: myos:nginx

    ports:

      - 80:80

    environment:

      - "TZ=Asia/Shanghai"

    volumes:

      - type: bind

        source: /root/conf/nginx.conf

        target: /usr/local/nginx/conf/nginx.conf

      - type: bind

        source: /var/webroot

        target: /usr/local/nginx/html

  phpsvc:

    container_name: php

    image: myos:php-fpm

    restart: always

    network_mode: "service:websvc"

    volumes:

      - type: bind

         source: /var/webroot                #宿主机路径

        target: /usr/local/nginx/html          #容器路径

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐