Docker-compose

4984 ワード

apt公式ライブラリのdockerバージョンは古い可能性があるため、$sudo apt-get remove docker docker-engine docker-ce docker.を先にアンインストールします.io
aptパッケージインデックスの更新:$sudo apt-get update
HTTPSでリポジトリを使用できるようにaptをインストールします:$sudo apt-get install-y apt-transport-https ca-certificates curl software-properties-common
Docker公式GPG鍵の追加:$curl-fssLhttps://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
次のコマンドを使用してstableリポジトリを設定します:$sudo add-apt-repository"deb[arch=amd 64]https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
aptパッケージインデックスを更新します:$sudo apt-get update
本番システムでは、常に最新バージョンを使用するのではなく、特定のバージョンのDocker CEをインストールする必要がある場合があります.使用可能なバージョンをリストします.$apt-cache madison docker-ceインストールする特定のバージョンを選択します.2番目の列はバージョン文字列で、3番目の列はリポジトリ名で、パッケージがどのリポジトリから来たか、安定性レベルを拡張することを示します.特定のバージョンをインストールするには、バージョン文字列をパッケージ名に添付し、等号(=)で区切ります.
最新バージョンのDocker CE:$sudo apt-get install-y docker-ce=$sudo apt-get install-y docker-ce=18.06をインストールします.3~ce~3-0~ubuntu
dockerを確認dockerサービスが起動しているかどうかを確認します:$systemctl status docker起動していない場合、dockerサービスを起動します:$sudo systemctl start dockerクラシックhello world:$sudo docker run hello-worldすべてのミラー$docker imagesをリストします
Dockerが推奨するコンセプトは、1つのコンテナが1つのサービスプロセスを実行することであり、docker-composeはDockerが提供する複数のDocekrコンテナを管理するためのツール1である.docker-composeコマンドファイル$sudo curl-Lをダウンロードhttps://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compose 2.docker-composeコマンドファイルに実行可能権限を付与$sudo chmod+x/usr/local/bin/docker-compose 3.インストールが正しいかどうかをテストするdocker-compose--version
Nginxプロファイルを準備するミラーからデフォルトのコピーをコピーし、必要に応じてdocker run--name tmp-nginx-container-d nginx docker cp tmp-nginx-container:/etc/nginx/nginxを変更します.conf/home Mysqlプロファイルdocker run--name tmp-mysql-container-d mysql:5.7を準備します.24 sudo docker cp tmp-mysql-container:/etc/mysql/my.cnf ./mysql/conf/my.conf sudo docker rm -f tmp-mysql-container
計画ディレクトリ
.
├── docker-compose.yml
├── log
│   ├── gunicorn.log
│   └── nginx
│       ├── access.log
│       └── error.log
├── mysql_master
│   ├── data
│   └── my.cnf
├── mysql_slave
│   ├── data
│   └── my.cnf
├── nginx
│   ├── conf
│   │   └── nginx.conf
│   └── logs
├── Pinshop
│   ├── app.py
│   ├── Apps
│   │   ├── __init__.py
│   │   ├── Product
│   │   │   ├── __init__.py
│   │   │   ├── model.py
│   │   │   ├── __pycache__
│   │   │   │   ├── __init__.cpython-36.pyc
│   │   │   │   └── model.cpython-36.pyc
│   │   │   └── views
│   │   │       ├── __pycache__
│   │   │       │   └── test.cpython-36.pyc
│   │   │       └── test.py
│   │   └── __pycache__
│   │       └── __init__.cpython-36.pyc
│   ├── config.py
│   ├── Dockerfile
│   ├── guni_conf.py
│   ├── manage.py
ymlファイルの変更
version: '3'
services:
  mysql-master:
    image: mysql:5.7.24
    ports:
     - "3306:3306"
    volumes:
      - "./mysql_master/data:/var/lib/mysql"
      - "./mysql_master/my.cnf:/etc/mysql/my.cnf"
      - "./log:/var/log"
    environment:
      - MYSQL_ROOT_PASSWORD=1
    networks:
      app_net:
        ipv4_address: 10.10.10.1
    container_name: "compose-mysql-master"
  mysql-slave:
    image: mysql:5.7.24
    ports:
     - "3307:3307"
    volumes:
      - "./mysql_slave/data:/var/lib/mysql"
      - "./mysql_slave/my.cnf:/etc/mysql/my.cnf"
      - "./log:/var/log"
    environment:
      - MYSQL_ROOT_PASSWORD=1
    networks:
      app_net:
        ipv4_address: 10.10.10.2
    container_name: "compose-mysql-slave"
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
#    depends_on:
#      - "flask"
    volumes:
      - "./nginx/conf/nginx.conf:/etc/nginx/nginx.conf"
      - "./log:/var/log"
    networks:
      - app_net
    container_name: "compose-nginx"
  flask:
    build: ./Pinshop
    image: pin-flask
    ports:
      - "8000:8000"
#    depends_on:
#      - mysql-master
#      - mysql-slave
    volumes:
      - "./Pinshop:/code"
      - "./log:/var/log"
    networks:
      - app_net
    container_name: "compose-flask"

networks:
  app_net:
    driver: bridge
    ipam:
      config:
      - subnet: 10.10.0.0/16
vim/etc/hosts変更仮想ホストを追加ディレクトリの下にdocker-compose up-dを入力app buildごとにrun docker-compose up-d nginxを入力して個別にサービスを開始します.ファイルに追加されたdocker-compose logs nginxは、サービス起動に失敗したログdocker-compose psを表示します.現在実行されているサービスステータスと関連情報docker-compose downをリストします.docker-compose downはすべてのコンテナを閉じて削除し、デフォルトのデータdocker exec-it compose-flask/bin/bashを保持してコンテナexitに入りdocker-compose build flaskを終了します.先にstopして、更にピットの点を再建します:相対的な経路を使うことしかできなくて、絶対的な経路はCOPYの時発効しません
#役に立つ資料かもしれませんが、構文エラーが発生するたびに、コンテナはエラーを報告して終了します.変更が完了したら、コンソールで「↑」と「enter」を押してdocker-compose upを再実行する必要があります.これはflaskの原因です:flaskが持っているreloadは文法が故障していない場合にしか、間違いがあれば間違いを報告して退出します.容器はpython 3 mainを実行しているからです.py、これが下がると、容器がstopします.この問題を解決するためにflask-failsafeプラグインを使用することができます.そして完璧です.文法の間違いもreloadになります.