IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker速学(四) 编排、集群和常见命令总结 -> 正文阅读

[系统运维]Docker速学(四) 编排、集群和常见命令总结

我们之前介绍了Docker学习的基本方法和原理,以及基础三大件:镜像、容器、仓库。还有Dockerfile和数据卷等等,如果你对前面的内容还不了解,可以进行再次回顾。

预览:

Docker小白入门建议及基本原理介绍

Docker速学(一) 镜像和容器

Docker速学(二) Dockerfile和数据卷

Docker速学(三) 网络、用户和进程

这篇内容是Docker速学系列的最后一篇内容,对docker的编排、集群做了梳理,在文章最后,还总结了一些常见的命令。

让我们开始今天的内容吧!

编排

编排就是将多个运行的容器串联起来,最常见的编排工具是 Docker Compose。

范例

下面是 OnlyOffice 安装所用的 docker-compose 配置文件:

version: '2'
services:
  onlyoffice-communityserver:
    container_name: onlyoffice-communityserver
    image: onlyoffice/communityserver:latest
    environment:
      - MYSQL_SERVER_HOST="127.0.0.1"
      - MYSQL_SERVER_PORT="3306"
      - MYSQL_SERVER_DB_NAME="onlyoffice"
      - MYSQL_SERVER_USER="onlyoffice"
      - MYSQL_SERVER_PASS="123456"
      - DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-documentserver
    stdin_open: true
    restart: always
    networks:
      - onlyoffice
    volumes:
      - /data/wwwroot/onlyoffice/CommunityServer/logs:/var/log/onlyoffice
      - /data/wwwroot/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data
      - /data/wwwroot/onlyoffice/CommunityServer/DocumentServer/data:/var/www/onlyoffice/DocumentServerData
    ports:
      - '80:80'
      - '443:443'
      - '5222:5222'

  onlyoffice-documentserver:
    container_name: onlyoffice-documentserver
    image: onlyoffice/documentserver:latest
    stdin_open: true
    restart: always
    networks:
      - onlyoffice
    ports:
      - '9002:80'
      - '9003:443'
    volumes:
      - /data/wwwroot/onlyoffice/DocumentServer/logs:/var/log/onlyoffice
      - /data/wwwroot/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data

networks:
  onlyoffice:
    driver: 'bridge'

注意:

  1. volumes 设置中的前面部分是宿主机的目录,后面是容器的目录,宿主机的目录无需提前创建
  2. 容器可以很方便的连接宿主机创建的数据库,上面的onlyoffice-communityserver中的MySQL连接配置就是宿主机连接范例

指令用法

下面重点描述重要指令的用法:

command

command 指令会覆盖 Dockerfile 中定义的 CMD 变量对应的值。

例如: command: bundle exec thin -p 3000

除了支持上述单一指令之外,也支持多指令的编写。

多指令

version: '3.1'
services:
  db:
    image: postgres
  web:
    build: .
    command:
      - /bin/bash
      - -c
      - |
        python manage.py migrate
        python manage.py runserver 0.0.0.0:8000

    volumes:
      - .:/code
    ports:
      - "8000:8000"
    links:
      - db

以上编排中的 command 相当于 docker run 下的:command: bash -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000"

如果多指令涉及变量,也可以写成:

    command:
      - /bin/bash
      - -c
      - |
        var=$$(echo 'foo')
        echo $$var # prints foo

entrypoint

entrypoint 用法与 command 类似,也支持多命令。

集群

容器技术不仅仅可以运行在单台宿主机上,它也支持运行在多个主机集群上。有两种类型的流行集群工具:

  • Docker Swarm:Docker 官方出品的容器的集群和调度工具。借助 Swarm,IT 管理员和开发人员可以将 Docker 节点集群建立和管理为单个虚拟系统。
  • Kubernetes(k8s):跨主机集群的自动部署、扩展以及运行应用程序容器的开源平台,这些操作包括部署,调度和节点集群间扩展。

常见命令

下面是使用Docker可能需要用到的常见命令

systemctl start/stop docker     运行/停止 docker 服务
systemctl enable docker         使 docker 开机自启
docker pull                     从镜像库拉取容器镜像
docker ps                       查看正在运行的容器列表(可以看到容器ID,所映射的端口号等等)
docker ps -a                    查看所有的容器(不管是否运行都能看到)
docker start/stop CONTAINER ID  开始/停止容器(CONTAINER ID 是容器的ID)            
docker rm CONTAINER ID          删除容器
docker stop $(docker ps -aq)    停止所有容器
docker rm $(docker ps -aq)      删除所有容器
docker kill CONTAINER ID        直接关闭容器
docker rmi $(docker images -q) -f 删除所有镜像
docker images  # 查询已下载镜像

到这里,我们的Docker速学基础入门系列就结束了,在全文里,我们系统地介绍了docker的入门学习方法和应该掌握的各种知识和内容,还介绍了一个可视化工具。我们也制作了相关软件的安装教程以及使用过程中的故障处理问题等文章,以便你的使用。

文章:

Docker可视化工具——Portainer全解

可视化Docker快速安装部署教程

相信在学习之后,我们都有或多或少的收获,而在日后的操作过程中,也欢迎大家和小九一起发现问题、提出问题、解决问题!我们将不断进步!期待你的讨论~

本文由Websoft9原创发布,转载请注明出处。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章           查看所有文章
加:2021-08-28 22:03:31  更:2021-08-28 22:04:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:04:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码