Dockerコンテナ運用ガイド

Docker環境のセットアップ

1.1 システムツールのインストール

yum install -y yum-utils device-mapper-persistent-data lvm2

1.2 リポジトリの追加

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

1.3 キャッシュの更新

dnf makecache

1.4 Docker CEのインストール

yum -y install docker-ce docker-ce-cli containerd.io

1.5 Dockerサービスの起動

systemctl start docker
systemctl enable docker

1.6 レジストリミラーの設定

{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

Dockerイメージの操作

2.1 イメージの検索

docker search nginx

2.2 イメージの取得

docker pull nginx:alpine

2.3 Dockerfileからのビルド

docker build -t custom-image /path/to/Dockerfile

コンテナの実行と管理

3.1 コンテナの起動

docker run -d --name web-server -p 8080:80 nginx:alpine

3.2 実行中のコンテナ一覧

docker ps

3.3 コンテナへの接続

docker exec -it web-server /bin/sh

3.4 コンテナログの確認

docker logs -f web-server

3.5 コンテナの停止

docker stop web-server

3.6 ファイルのコピー

docker cp local_file.txt web-server:/app/
docker cp web-server:/app/log.txt .

3.7 コンテナの削除

docker rm web-server

カスタムイメージの作成

FROM ubuntu:20.04
ENV APP_DIR=/opt/app
WORKDIR $APP_DIR
COPY jdk-11.0.15_linux-x64_bin.tar.gz .
RUN tar -xzf jdk-11.0.15_linux-x64_bin.tar.gz && \
    mv jdk-11.0.15 jdk && \
    rm jdk-11.0.15_linux-x64_bin.tar.gz
ENV JAVA_HOME=$APP_DIR/jdk
ENV PATH=$PATH:$JAVA_HOME/bin

docker-composeの活用

5.1 docker-composeのインストール

pip install docker-compose

5.2 サービスの起動

docker-compose up -d

Elasticsearchクラスタの構築

version: '3.8'
services:
  es-node1:
    image: elasticsearch:8.5.0
    environment:
      - node.name=es-node1
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es-node1,es-node2
      - cluster.initial_master_nodes=es-node1,es-node2
    volumes:
      - es-data1:/usr/share/elasticsearch/data
    networks:
      - es-net
  
  es-node2:
    image: elasticsearch:8.5.0
    environment:
      - node.name=es-node2
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es-node1,es-node2
      - cluster.initial_master_nodes=es-node1,es-node2
    volumes:
      - es-data2:/usr/share/elasticsearch/data
    networks:
      - es-net

volumes:
  es-data1:
  es-data2:

networks:
  es-net:
    driver: bridge

MySQLコンテナのデプロイ

services:
  mysql-db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: secure_password
      MYSQL_DATABASE: app_db
    volumes:
      - mysql-data:/var/lib/mysql
    ports:
      - "3306:3306"
    networks:
      - backend-net

volumes:
  mysql-data:

networks:
  backend-net:

タグ: Docker コンテナ Elasticsearch MySQL docker-compose

7月6日 23:29 投稿