自分用のメモ
sudoなしでdockerコマンドを実行する
sudo groupadd docker
sudo gpasswd -a $USER docker
sudo systemctl restart docker
docker-composeを使う
aptで入るのは古いので,
sudo pip install docker-compose
でインストールすると新し目になる.
docker run
を試す
docker run -it --rm -v `pwd`:/tmp eisoku9618/kuroiwa_dockefiles_for_latexmk /bin/sh -c "cd /tmp"
-
--rm
: コンテナ終了時にコンテナを削除してくれる -
-it
: コンテナ内を操作できる
--rm
を付け忘れている場合にコンテナを削除する
docker rm `docker ps -a -q`
とすれば一括削除できる.
passwordなどのcredential情報を渡す
docker secret
を使って渡してみる.
docker secret
を使うためには
docker swarm init
を最初にしておく必要がある.
ベストな方法かどうかは分からないが, https://qiita.com/ktooi/items/ba156bb1848c31f04949 を参考に,.bash_histroy
にcredential情報が残らないように配慮しつつ
docker-compose.yml
version: "3.1"
services:
app:
image: nginx
secrets:
- my-secret
secrets:
my-secret:
external: true
を作って,
read -sp "Please input your password: " __pass; echo
echo ${__pass} | sudo docker secret create my-secret -
docker stack deploy --compose-file=docker-compose.yml hoge
で起動し,
docker ps -a
でコンテナ名を調べて
docker exec -it hoge_app.1.ujwxaonx80ml8qig0ise3kp1s /bin/bash -c "cat /run/secrets/my-secret"
とすると,秘密にしていた情報が渡っていることが分かる.
このように,コンテナ内では秘密に成っていないことに注意.