dockerとdocker-composeの使用概要
13923 ワード
一、Docker
1、docker概念
Dockerは開発したアプリケーションをコンテナに自動的に配置できるオープンソースエンジンです.DockerはLinuxコンテナのパッケージに属し、簡単で使いやすいコンテナ使用インタフェースを提供し、アプリケーションはこの仮想コンテナで実行されます.dockerの3つの基本概念:
2、dockerの基本コマンド:
dockerのインストール
yum install -y docker
バージョンの表示
docker -v
開始
systemctl start docker
dockerサービスの再起動
systemctl restart docker
service docker restart
dockerを閉じる
service docker stop
systemctl stop docker
ミラーの検索
docker search NAME
倉庫からミラーを引き出す
docker pull CONTAINER
ダウンロードしたミラーの表示
docker images
ミラー詳細の表示
docker inspect ID
ミラーの作成
1)
docker commit [OPTIONS] / ID
-a ""
-m ""
-p ""
2)
cat XXX.tar.gz |docker import -
3) Dockerfile
docker save -o XXX.tar docker load --input XXX.tar
ミラーのアップロード
docker push NAME[:TAG]
ミラーの削除
docker rmi imageid
実行中のコンテナの表示
docker ps
すべてのコンテナを表示
docker ps -a
コンテナを削除
docker rm ID
スターティングコンテナ
docker start TED
ていしようき
docker stop TED
ログの表示
docker logs ID
新規コンテナ
docker create it :
コンテナを新規作成して起動
docker run ... -d
容器に入る
docker exec -it ID bash
docker attach ID
コンテナを終了
exit
コンテナのインポートとエクスポート
docker export CONTAINER > test.tar
cat test.tar | docker import -CONTAINER
コンテナ内のデータボリュームの作成
docker run -d -P --name rongqiname -v /webapp centos
ホストディレクトリビットデータボリュームをマウントし、/src/webappディレクトリをコンテナの/opt/webappディレクトリにロード
docker run -d -P --name web -v /src/webapp:/opt/webapp centos
dbdataコンテナを作成し、データボリュームを/dbdataディレクトリにマウントします.
docker run -it -v /dbdata --name dbdata ubuntu
コンテナdb 1を作成し、dbdataデータボリュームコンテナをdb 1およびdb 2にマウントします.これにより、/dbdataディレクトリのコンテンツはdb 1およびdb 2で共通になります.
docker run -it --volumes-from dbdata --name db1 ubuntu
docker run -it --volumes-from dbdata --name db2 ubuntu
dbdataデータボリュームコンテナ内のデータボリュームのバックアップ
Dockerfile
1.
from ubuntu
2.
maintainer docker_user docker_user@email.com
3.
4.
3、docker-composeの基本コマンド:
docker-composeのインストール
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
インストール完了の承認
chmod +x /usr/local/bin/docker-compose
インストールに成功したかどうかを確認
docker-compose --version
docker-compose XXX,XXXは以下のパラメータとすることができる
up
Component質問で定義されたすべてのコンテナを起動し、ログ情報を集約します.通常-dパラメータ(upの後ろ)が追加され、コンテナがバックグラウンドで実行されます.
start
指定した既存のコンテナを起動
build
Dockerfileによって構築されたミラーを再構築します.
ps
Componentが管理するコンテナのステータス情報を取得する
run
コンテナを起動し、使い捨てのコマンドを許可します.接続されたコンテナは、--no-depsパラメータを使用しない限り、同時に起動します.
logs
Componentが管理するコンテナのログを集約し、カラーで出力します.
stop
コンテナを停止しますが、削除しません.
rm
停止したコンテナを削除します.Dockerが管理するデータボリュームを削除するには-vパラメータを使用することを忘れないでください.
docker-composeを使用してzookeeeperとkafkaを起動する例:docker-composeをカスタマイズする必要がある.yaml、docker-compose.yamlディレクトリの下でdocker-compose up-dを実行します.zookeeeperとkafkaコンテナが作成され、起動されます.
version: "3"
services:
zookeeper-0:
container_name: zookeeper-0
image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/zookeeper:3.4.10
hostname: zookeeper-0
environment:
- ZK_REPLICAS=1
- ZK_HEAP_SIZE=2G
- ZK_TICK_TIME=2000
- ZK_INIT_LIMIT=10
- ZK_SYNC_LIMIT=5
- ZK_MAX_CLIENT_CNXNS=60
- ZK_SNAP_RETAIN_COUNT=3
- ZK_PURGE_INTERVAL=1
- ZK_LOG_LEVEL=INFO
- ZK_CLIENT_PORT=2181
- ZK_SERVER_PORT=2888
- ZK_ELECTION_PORT=3888
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
command:
- sh
- -c
- zkGenConfig.sh && exec zkServer.sh start-foreground
volumes:
- "./kafka/zk:/var/lib/zookeeper"
kafka-0:
container_name: kafka-0
image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/kafka:1.0.0
hostname: 127.0.0.1
depends_on:
- zookeeper-0
links:
- zookeeper-0
ports:
- "9092:9092"
command:
- sh
- -c
- "/opt/kafka/bin/kafka-server-start.sh config/server.properties \
--override zookeeper.connect=zookeeper-0:2181 \
#--override log.dirs=/opt/kafka/data/logs \
--override broker.id=0 "
volumes:
- "./kafka/kafka:/opt/kafka/data"
# mysql:
# container_name: mysql
# hostname: mysql
# image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/mysql:5.7.17
# ports:
# - "3306:3306"
# environment:
# MYSQL_ROOT_PASSWORD: root
# volumes:
# - ./mysql/mysql_data:/var/lib/mysql
# - ./mysql/mysql_db.cnf:/etc/mysql/conf.d/mysql_db.cnf