Introduction Dockerfile build run is a manual operation of a single container. If a microservice architecture is used, 100+ containers need to be started. How to maintain the dependencies between them? Three steps:
First experience 1.Dockerfile FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP app.py ENV FLASK_RUN_HOST 0.0.0.0 RUN apk add --no-cache gcc musl-dev linux-headers COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . CMD ["flask", "run"] 2.Service import time import redis from flask import Flask app = Flask(__name__) cache = redis.Redis(host='redis', port=6379) def get_hit_count(): retries = 5 while True: try: return cache.incr('hits') except redis.exceptions.ConnectionError as exc: if retries == 0: raise exc retries -= 1 time.sleep(0.5) @app.route('/') def hello(): count = get_hit_count() return 'Hello World! I have been seen {} times.\n'.format(count) docker-compose.yml version: '3' services: web: build: . ports: - "5000:5000" volumes: - .:/code -logvolume01:/var/log links: - redis redis: image: redis volumes: logvolume01: {} docker-compose up Starting compose-demo_web_1 ... done Starting compose-demo_redis_1 ... done Attaching to compose-demo_redis_1, compose-demo_web_1 redis_1 | 1:C 12 Sep 2020 07:34:09.654 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo redis_1 | 1:C 12 Sep 2020 07:34:09.655 # Redis version=6.0.7, bits=64, commit=00000000, modified=0, pid=1, just started redis_1 | 1:C 12 Sep 2020 07:34:09.655 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf redis_1 | 1:M 12 Sep 2020 07:34:09.657 * Running mode=standalone, port=6379. redis_1 | 1:M 12 Sep 2020 07:34:09.657 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. redis_1 | 1:M 12 Sep 2020 07:34:09.657 # Server initialized redis_1 | 1:M 12 Sep 2020 07:34:09.658 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. redis_1 | 1:M 12 Sep 2020 07:34:09.658 * Loading RDB produced by version 6.0.7 redis_1 | 1:M 12 Sep 2020 07:34:09.658 * RDB age 156 seconds redis_1 | 1:M 12 Sep 2020 07:34:09.658 * RDB memory usage when created 0.77 Mb redis_1 | 1:M 12 Sep 2020 07:34:09.658 * DB loaded from disk: 0.000 seconds web_1 | * Serving Flask app "app.py" web_1 | * Environment: production web_1 | WARNING: This is a development server. Do not use it in a production deployment. web_1 | Use a production WSGI server instead. web_1 | * Debug mode: off YML file rulesversion: "1.0" #versionservices: #service listservice1: #Service configuration container_name: #Container name depends_on: #Dependency list - depend1 -depend2 images: #Mirror-image1 - image2 build:. #Build directory network: #Network...... service2:test2 ...... volumnes: #Mount directory list networks: #Network list configs: #Other configurations This is the end of this article about the implementation of Docker batch container orchestration. For more relevant Docker batch container orchestration content, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future! You may also be interested in:
|
<<: MySQL Practical Experience of Using Insert Statement
>>: WeChat applet scroll-view realizes left and right linkage
Preface Currently, the front-end solves cross-dom...
Table of contents Preface Scenario Analysis Summa...
Some of you may have heard that the order of trav...
docker attach command docker attach [options] 容器w...
This article shares the mysql5.6.24 automatic ins...
6 solutions for network failure in Docker contain...
Windows Server 2012 and Windows Server 2008 diffe...
First look at the effect diagram: The complete co...
The effect is as follows: Example 1 Example 2: Ta...
Introduction Recently I found that there is an AR...
<br />This tag can be used to directly add a...
Table of contents Use of this.$set in Vue use Why...
Table of contents Classic approach question Furth...
Some common statements for viewing transactions a...
1. Parent components can use props to pass data t...