当前位置: 首页 > news >正文

梅河口建设局网站腾讯免费网站建设

梅河口建设局网站,腾讯免费网站建设,企业网站升级,做任务的网站源码Docker Compose 介绍 Docker Compose是Docker官方编排#xff08;Orchestration#xff09;项目之一#xff0c;负责快速的部署分布式应用。其代码目前在https://github.com/docker/compose上开源。Compose 定位是 「定义和运行多个 Docker 容器的应用#xff08;Definin…Docker Compose 介绍 Docker Compose是Docker官方编排Orchestration项目之一负责快速的部署分布式应用。其代码目前在https://github.com/docker/compose上开源。Compose 定位是 「定义和运行多个 Docker 容器的应用Defining and running multi-container Docker applications」其前身是开源项目Fig。 前面我们已经学习过使用一个Dockerfile模板文件可以很方便的定义一个单独的应用容器。然而在日常工作中经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目除了 Web 服务容器本身往往还需要再加上后端的数据库服务容器或者缓存服务容器甚至还包括负载均衡容器等。Compose 恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.yml模板文件YAML 格式来定义一组相关联的应用容器为一个项目project。 Compose 中有两个重要的概念 服务 (service)一个应用的容器实际上可以包括若干运行相同镜像的容器实例。项目 (project)由一组关联的应用容器组成的一个完整业务单元在 docker-compose.yml 文件中定义。 Compose 的默认管理对象是项目通过子命令对项目中的一组容器进行便捷地生命周期管理。Compose 项目由 Python 编写实现上调用了 Docker 服务提供的 API 来对容器进行管理。所以只要所操作的平台支持 Docker API就可以在其上利用 Compose 来进行编排管理。 安装与卸载 Compose支持 Linux、macOS、Windows 10 三大平台。Compose 可以通过 Python 的包管理工具pip进行安装也可以直接下载编译好的二进制文件使用甚至能够直接在 Docker 容器中运行。前两种方式是传统方式适合本地环境下安装使用最后一种方式则不破坏系统环境更适合云计算场景。Docker for Mac 、Docker for Windows 自带 docker-compose 二进制文件安装 Docker 之后可以直接使用。 $ docker-compose --version docker-compose version 1.17.1, build 6d101fb二进制安装 在 Linux 上的也安装十分简单从 官方 GitHub Release 处直接下载编译好的二进制文件即可。例如在 Linux 64 位系统上直接下载对应的二进制包。 $ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-uname -s-uname -m /usr/local/bin/docker-compose $ sudo chmod x /usr/local/bin/docker-composePIP 安装 注 x86_64 架构的 Linux 建议按照上边的方法下载二进制包进行安装如果您计算机的架构是 ARM (例如树莓派)再使用 pip 安装。 这种方式是将 Compose 当作一个 Python 应用来从 pip 源中安装。执行安装命令 $ sudo pip install -U docker-compose Collecting docker-composeDownloading docker-compose-1.17.1.tar.gz (149kB): 149kB downloaded ... Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddressbash 补全命令 $ curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose /etc/bash_completion.d/docker-compose容器中执行 Compose 既然是一个 Python 应用自然也可以直接用容器来执行它。 $ curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh /usr/local/bin/docker-compose $ chmod x /usr/local/bin/docker-compose实际上查看下载的run.sh脚本内容如下: set -eVERSION1.8.0 IMAGEdocker/compose:$VERSION# Setup options for connecting to docker hostif [ -z $DOCKER_HOST ]; thenDOCKER_HOST/var/run/docker.sockfiif [ -S $DOCKER_HOST ]; thenDOCKER_ADDR-v $DOCKER_HOST:$DOCKER_HOST -e DOCKER_HOSTelseDOCKER_ADDR-e DOCKER_HOST -e DOCKER_TLS_VERIFY -e DOCKER_CERT_PATHfi# Setup volume mounts for compose config and contextif [ $(pwd) ! / ]; thenVOLUMES-v $(pwd):$(pwd)fiif [ -n $COMPOSE_FILE ]; thencompose_dir$(dirname $COMPOSE_FILE)fi# TODO: also check --file argumentif [ -n $compose_dir ]; thenVOLUMES$VOLUMES -v $compose_dir:$compose_dirfiif [ -n $HOME ]; thenVOLUMES$VOLUMES -v $HOME:$HOME -v $HOME:/root # mount $HOME in /root to share docker.configfi # Only allocate tty if we detect oneif [ -t 1 ]; thenDOCKER_RUN_OPTIONS-tfiif [ -t 0 ]; thenDOCKER_RUN_OPTIONS$DOCKER_RUN_OPTIONS -ifi exec docker run --rm $DOCKER_RUN_OPTIONS $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w $(pwd) $IMAGE $可以看到它其实是下载了docker/compose镜像并运行。 卸载 如果是二进制包方式安装的删除二进制文件即可。 $ sudo rm /usr/local/bin/docker-compose如果是通过 pip 安装的则执行如下命令即可删除。 $ sudo pip uninstall docker-compose使用 下面我们用 Python 来建立一个能够记录页面访问次数的 web 网站。 新建文件夹在该目录中编写app.py文件 import time import redis from flask import Flaskapp Flask(__name__) cache redis.Redis(hostredis, port6379)def get_hit_count():retries 5while True:try:return cache.incr(hits)except redis.exceptions.ConnectionError as exc:if retries 0:raise excretries - 1time.sleep(0.5)app.route(/) def hello():count get_hit_count()return Hello World! I have been seen {} times.\n.format(count)if __name__ __main__:app.run(host0.0.0.0, debugTrue)接着编写Dockerfile文件内容为: FROM python:3.6-alpine ADD . /code WORKDIR /code RUN pip install redis flask CMD [python, app.py]然后是编写docker-compose.yml文件这个是 Compose 使用的主模板文件。 version: 3 services:web: build: . ports: - 5000:5000volumes:- .:/coderedis: image: redis:alpine运行 compose 项目: $ docker-compose up此时访问本地 5000 端口每次刷新页面计数就会加 1。 Compose 命令 对于 Compose 来说大部分命令的对象既可以是项目本身也可以指定为项目中的服务或者容器。如果没有特别的说明命令对象将是项目这意味着项目中所有的服务都会受到命令影响。 执行docker-compose [COMMAND] --help或者**docker-compose help [COMMAND]**可以查看具体某个命令的使用格式。 docker-compose 命令的基本的使用格式是: docker-compose [-farg...] [options] [COMMAND] [ARGS...]命令选项 -f, --file FILE 指定使用的 Compose 模板文件默认为 docker-compose.yml可以多次指定。-p, --project-name NAME 指定项目名称默认将使用所在目录名称作为项目名。–x-networking 使用 Docker 的可拔插网络后端特性–x-network-driver DRIVER 指定网络后端的驱动默认为 bridge–verbose 输出更多调试信息。-v, --version 打印版本并退出。 build 格式为docker-compose build [options] [SERVICE…]。 构建重新构建项目中的服务容器。服务容器一旦构建后将会带上一个标记名例如对于 web 项目中的一个 db 容器可能是 web_db。可以随时在项目目录下运行docker-compose build来重新构建服务。选项包括 –force-rm 删除构建过程中的临时容器。–no-cache 构建镜像过程中不使用 cache这将加长构建过程。–pull 始终尝试通过 pull 来获取更新版本的镜像。 config: 验证 Compose 文件格式是否正确若正确则显示配置若格式错误显示错误原因。 down此命令将会停止 up 命令所启动的容器并移除网络 exec进入指定的容器。 help获得一个命令的帮助。 images列出 Compose 文件中包含的镜像。 kill格式为docker-compose kill [options] [SERVICE…]。通过发送SIGKILL信号来强制停止服务容器。支持通过-s参数来指定发送的信号例如通过如下指令发送SIGINT信号。 $ docker-compose kill -s SIGINTlogs格式为docker-compose logs [options] [SERVICE…]查看服务容器的输出。默认情况下docker-compose 将对不同的服务输出使用不同的颜色来区分。可以通过 --no-color来关闭颜色。该命令在调试问题的时候十分有用。 pause格式为docker-compose pause [SERVICE…]暂停一个服务容器。 port格式为docker-compose port [options] SERVICE PRIVATE_PORT打印某个容器端口所映射的公共端口。选项 –protocolproto 指定端口协议tcp默认值或者 udp。–indexindex 如果同一服务存在多个容器指定命令对象容器的序号默认为 1。 ps格式为docker-compose ps [options] [SERVICE…]列出项目中目前的所有容器。选项 -q只打印容器的 ID 信息。 pull格式为docker-compose pull [options] [SERVICE...]拉取服务依赖的镜像。选项 –ignore-pull-failures 忽略拉取镜像过程中的错误。 push推送服务依赖的镜像到 Docker 镜像仓库。 restart格式为docker-compose restart [options] [SERVICE…]重启项目中的服务。选项 -t, --timeout TIMEOUT 指定重启前停止容器的超时默认为 10 秒。 rm格式为docker-compose rm [options] [SERVICE…],删除所有停止状态的服务容器。推荐先执行 docker-compose stop命令来停止容器。选项 -f, --force 强制直接删除包括非停止状态的容器。一般尽量不要使用该选项。-v 删除容器所挂载的数据卷。 run格式为docker-compose run [options] [-p PORT…] [-e KEYVAL…] SERVICE [COMMAND] [ARGS…]在指定服务上执行一个命令。例如 $ docker-compose run ubuntu ping docker.com将会启动一个 ubuntu 服务容器并执行 ping docker.com 命令。默认情况下如果存在关联则所有关联的服务将会自动被启动除非这些服务已经在运行中。 该命令类似启动容器后运行指定的命令相关卷、链接等等都将会按照配置自动创建。 给定命令将会覆盖原有的自动运行命令 不会自动创建端口以避免冲突。 如果不希望自动启动关联的容器可以使用--no-deps选项例如: $ docker-compose run --no-deps web python manage.py shell将不会启动 web 容器所关联的其它容器,选项 -d 后台运行容器。–name NAME 为容器指定一个名字。–entrypoint CMD 覆盖默认的容器启动指令。-e KEYVAL 设置环境变量值可多次使用选项来设置多个环境变量。-u, --user“” 指定运行容器的用户名或者 uid。–no-deps 不自动启动关联的服务容器。–rm 运行命令后自动删除容器d 模式下将忽略。-p, --publish[] 映射容器端口到本地主机。–service-ports 配置服务端口并映射到本地主机。-T 不分配伪 tty意味着依赖 tty 的指令将无法运行。 scale格式为docker-compose scale [options] [SERVICENUM…]设置指定服务运行的容器个数。 通过 servicenum 的参数来设置数量。例如 $ docker-compose scale web3 db2将启动 3 个容器运行 web 服务2 个容器运行 db 服务。 一般的当指定数目多于该服务当前实际运行容器将新创建并启动容器反之将停止容器。选项 -t, --timeout TIMEOUT 停止容器时候的超时默认为 10 秒。 start格式为docker-compose start [SERVICE…]启动已经存在的服务容器。 stop格式为docker-compose stop [options] [SERVICE…], 停止已经处于运行状态的容器但不删除它。通过docker-compose start可以再次启动这些容器。选项 -t, --timeout TIMEOUT 停止容器时候的超时默认为 10 秒。 top查看各个服务容器内运行的进程。 unpause格式为docker-compose unpause [SERVICE…]恢复处于暂停状态中的服务。 up格式为docker-compose up [options] [SERVICE…]该命令十分强大它将尝试自动完成包括构建镜像重新创建服务启动服务并关联服务相关容器的一系列操作。链接的服务都将会被自动启动除非已经处于运行状态。 可以说大部分时候都可以直接通过该命令来启动一个项目。 默认情况docker-compose up启动的容器都在前台控制台将会同时打印所有容器的输出信息可以很方便进行调试。 当通过 Ctrl-C 停止命令时所有容器将会停止。 如果使用docker-compose up -d将会在后台启动并运行所有的容器。一般推荐生产环境下使用该选项。 默认情况如果服务容器已经存在docker-compose up将会尝试停止容器然后重新创建保持使用 volumes-from 挂载的卷以保证新启动的服务匹配 docker-compose.yml 文件的最新内容。如果用户不希望容器被停止并重新创建可以使用 docker-compose up --no-recreate。这样将只会启动处于停止状态的容器而忽略已经运行的服务。 如果用户只想重新部署某个服务可以使用docker-compose up --no-deps -d SERVICE_NAME来重新创建服务并后台停止旧服务启动新服务并不会影响到其所依赖的服务。选项 -d 在后台运行服务容器。–no-color 不使用颜色来区分不同的服务的控制台输出。–no-deps 不启动服务所链接的容器。–force-recreate 强制重新创建容器不能与--no-recreate同时使用。 --no-recreate如果容器已经存在了则不重新创建不能与 --force-recreate同时使用。 --no-build不自动构建缺失的服务镜像。-t, --timeout TIMEOUT 停止容器时候的超时默认为 10 秒。
http://www.dnsts.com.cn/news/27254.html

相关文章:

  • 基于中小企业需求的电子商务网站建设营销式网站制作
  • 怎么做可以聊天的网站电话怎么做网站域名
  • 网站尺寸国内软件上市公司排行榜
  • 网站设计的销售网站建设合同拟写
  • 郑州网站设计专家wordpress广告主题
  • 网站类游戏网站开发微信微商城开发
  • visual studio做网站wordpress对接微信登录
  • 路北网站制作山东省建设厅网站地址
  • 莆田外贸网站建设免费自己开发app软件
  • idea做百度网站美食类网站开发说明书
  • 郑州网站建设哪家强重庆沙坪坝地图
  • 台州网站建设蓝渊wordpress微信验证码登录
  • 雄安网站开发公司icp对网站内容
  • 南昌建网站哪家公司建立5g散热工业园
  • 成都便宜做网站的中企动力公司是国企吗
  • 网站设计在线培训机构网页制作教程案例
  • 新乡网站建设制作公司网站开发培训哪个好
  • 企业网站建设总体构架seo外链网
  • 在线网站设计工具微信定制版app
  • 做网站是干什么的求职网站建设
  • 做网站属于什么行业wordpress 英文
  • 企业网站设计沈阳脉脉用的什么技术做网站
  • 河北网站建设与推广wordpress 插件启用钩子
  • 视频网站 建设织梦淘宝客网站
  • 贵州省建设厅网站公众一体化平台白云网站建设公司
  • 创建自己的免费网站蚌埠的网站建设
  • 专业网站排名优化怎么做网页导航栏
  • 关于论文网站开发参考文献商洛做网站电话
  • 可以做免费的网站吗动漫wordpress主题下载
  • 偃师市住房和城乡建设局网站免费的crm软件系统