LoginSignup
0
0

More than 1 year has passed since last update.

portainerを起動させるスクリプト

Last updated at Posted at 2021-11-23

PortainerはDocker上でportainerコンテナを作ってDocker全体を管理するタイプのツールです。

参考
https://qiita.com/polarbear08/items/931fe04ec228fad13092
https://stackoverflow.com/questions/394230/how-to-detect-the-os-from-a-bash-script

image001.png

起動させるのがめんどくさいので自分用にちょっと便利にしたスクリプトを作成しました。(ただしwindowsは非対応)

スクリプト内容

Docker起動後に以下の内容が記載されたファイルを実行することでPortainerを実行させます。

例えば.zprofile.bash_profile等に/bin/sh ファイルパス.shといった感じに追記してターミナル起動時に起動させることが出来ます(起動したらブラウザを開く)。既に起動している場合はportainer running. URLが表示されるだけです。

portainerに設定した内容はDocker Volumeのportainer_setting_dataに格納されます。

ターミナル起動時毎に実行され、dockeとportainerrが起動しているか等を判定するので、ターミナルの起動時間が気になる人はcronとか使ったりして対応するか、このスクリプト自体使わない方が良いかもしれません。

#/bin/bash
# コンソール表示用の環境変数
PORTAINER_URL=http://docker.local
# ホスト側のポート番号
PORTAINER_PORT1=8000
PORTAINER_PORT2=9000
if [ "$(docker stats --no-stream)" ]; then
if [ "$(docker ps -qf name=portainer -f status=running)" ]; then
# portainer動作中
echo "portainer running. ${PORTAINER_URL}:${PORTAINER_PORT1}"
elif [ "$(docker ps -qf name=portainer -f status=exited)" ]; then
# portainerコンテナはあるが動作していない場合
docker start portainer
echo "portainer start. ${PORTAINER_URL}:${PORTAINER_PORT2}"
# URLを開く
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
# Linux
echo "open linux"
xdg-open ${PORTAINER_URL}:${PORTAINER_PORT2}
elif [[ "$OSTYPE" == "darwin"* ]]; then
# Mac OSX
open ${PORTAINER_URL}:${PORTAINER_PORT2}
fi
elif [ ! "$(docker ps -aqf name=portainer)" ]; then
# portainerコンテナが存在していない場合
docker run \
    --detach \
    --publish ${PORTAINER_PORT1}:8000 \
    --publish ${PORTAINER_PORT2}:9000 \
    --name portainer \
    --restart always \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    --volume portainer_setting_data:/data \
    portainer/portainer-ce
echo "portainer create. ${PORTAINER_URL}:${PORTAINER_PORT2}"
# URLを開く
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
# Linux
echo "open linux"
xdg-open ${PORTAINER_URL}:${PORTAINER_PORT2}
elif [[ "$OSTYPE" == "darwin"* ]]; then
# Mac OSX
open ${PORTAINER_URL}:${PORTAINER_PORT2}
fi
fi
fi

portainer削除

上記スクリプトのファイルを削除してから下記を実行することでコンテナとボリュームをそれぞれ削除出来ます。

コンテナを停止して削除

docker stop $(docker ps -aqf "name=portainer") && docker rm $(docker ps -aqf "name=portainer")

設定が入ったボリュームを削除

docker volume rm portainer_setting_data
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0