複数のコンテナのビルドや各コンテナの起動・停止などを簡単にできるDocker Composeをインストールする.
sudo curl -L
"https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)"
-o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 11.6M 100 11.6M 0 0 1144k 0 0:00:10 0:00:10 --:--:-- 849k
インストールしたフォルダに実行権限を付与する.
sudo chmod +x /usr/local/bin/docker-compose
問題なくインストールできているかを確認.
docker-compose --version
docker-compose version 1.27.4, build 40524192
なお,Docker Composeの設定ファイルはdocker-compose.yml.Docker Composeを実行するフォルダに置かれる[保存する].つまり,プロジェクトのルートディレクトリに配置する.
docker-compose.ymlというファイルが存在するディレクトリにおいて,
docker compose up
とコマンドを実行すると,docker-compose.ymlファイルに記述された全てのサービス[コンテナ]をビルドし起動する.
docker-compose.ymlファイルのサンプルを見てみる.
version: '3.8'
services:
free5gc-upf:
container_name: upf
image: free5gc/upf:v3.3.0
command: bash -c "./upf-iptables.sh && ./upf -c ./config/upfcfg.yaml"
volumes:
- ./config/upfcfg.yaml:/free5gc/config/upfcfg.yaml
- ./config/upf-iptables.sh:/free5gc/upf-iptables.sh
cap_add:
- NET_ADMIN
networks:
privnet:
aliases:
- upf.free5gc.org
services: では,作成したいコンテナを列挙する.次いで,image: にはビルドする Dockerイメージ を指定.Dockerイメージではなく,用意した Dockerfile からビルドを行う場合には, build: 以下に ymlファイルが置いてあるディレクトリから Dockerfile が置いてあるディレクトリへの相対パスを記述する.
command: には,サービスコンテナが起動したときに実行するコマンドを指定する.
なお,yamlファイルの冒頭に書いてある version は非推奨とされていて記述しなくてもよい.
Mathematics is the language with which God has written the universe.