技術スタック-Docker
7966 ワード
Dockerとは?
既存の仮想マシンの保護カバーを使用して、独立したオペレーティングシステムとAPP->コンピュータ(サーバ)のスペースの浪費とリソースの浪費が深刻です.
従来の仮想化方法はオペレーティングシステムを仮想化することであり、Dockder
Dockerは、1つのオペレーティングシステム上でAPPを実行するための適切なサイズのコンテンツ(スペース)のみを提供し、効率的にAPPを実行します.
Docker実行順序と用語クリーンアップ
Containerの実行(事前に作成したDockerイメージの実行)
画像検索:Docker Search App
docker search mysql#mysql画像検索結果出力
docker pull mysql#イメージのダウンロード
docker images#画像をチェック
イメージの実行(コンテナの実行)
docker run --name mysql-container -d -p 1104:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:latestmysql:latest
-その他の説明:mysql-container(コンテナ名)
-1104は外部から接続するポートで、後ろのポートは内部ポートです.
-つまり、workbenchなどの外部プログラムから接続する場合、任意のポートを指定し、内部ポートはmysqlで使用されるポートとして指定します.
けんさようき
docker ps(現在実行されているコンテナを確認)
docker ps-a(これまで稼働していたすべてのコンテナを表示)
容器を閉じる
docker rm ContainerID
Docker Compose
2つ以上のDocker Conainerを実行したいなら?!
Word Press(+Mysql)を実行する場合は、次の操作を行います.
-Dockerイメージを使用してMysqlを事前に実行
-Word Pressリンクに接続して実行
Docker Componentの使用
Docker Componentとは?複数のコンテナのドッキング・アプリケーション定義を実行するツール
長所
-1つのファイルで2つ以上のコンテナを実行できます.
-yamlで構成されているので読みやすさが良い
-mysqlが必要なコンテナ、例えば接続プログラムに接続できます.
Docker Component webを使用してredisを実行
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
flask
redis
作成# syntax=docker/dockerfile:1
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
EXPOSE 5000
COPY . .
CMD ["flask", "run"]
version: "3.9"
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
運転端末
docker-compose up
その他の説明:web,redis実行サービス
-dockerを作成するにはdockerイメージが必要です.redisのみを定義します.
-dockerfileをwebdocker buildの現在の位置の開始点として使用
Docker Componentを使用してMySQL実行環境を構成
docker-合成ファイルを作成(プロジェクトの下部にファイルを作成)
-変更する部分を赤で表示
docker合成ファイルを含む場所で実行(端末)
- docker-compose up
ワークベンチを使用したDB接続の作成
Localhostを使用してDocker Mysqlを構成
AWSを使用してDocker Mysqlを構成
TO DO
Reference
https://ko.wikipedia.org/wiki/%EB%8F%84%EC%BB%A4_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4 )
https://timewizhan.tistory.com/entry/docker-compose-%EB%9E%80
https://docs.docker.com/compose/gettingstarted/
Reference
この問題について(技術スタック-Docker), 我々は、より多くの情報をここで見つけました https://velog.io/@sds1vrk/기술-스택-Dockerテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol