すぐ忘れちゃうのでよく使用するdocker系コマンドをつらつら書き留めておく
Dockerについては我らが「さくらのナレッジ」が超参考になる
$ docker -v
Docker version 18.03.1-ce, build 9ee9f40
$ docker-compose -v
docker-compose version 1.21.1, build 5a3f1a3
centosにインストールした際の作業ログ
公式(docker, compose)に書いてあることやっただけ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io
$ docker --version
$ sudo systemctl start docker
$ 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
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
|
キャッシュを使わずイチからビルド
1
|
docker-compose build --no-cache
|
不要なコンテナイメージ
1
|
docker volume ls -f "dangling=true" -q
|
1
|
docker volume rm [VOLUME NAME]
|
1
|
docker volume ls -f "dangling=true" -q | xargs docker volume rm
|
1
|
docker ps -aq | xargs docker rm
|
1
|
docker images --format "{{.Repository}}:{{.Tag}}" | xargs docker rmi
|
または
1
|
docker images --format "{{IMAGE ID}}" | xargs docker rmi
|
使用していないオブジェクトの削除には prune コマンドが用意されてた
こっち使うようにしよう
1
2
3
4
|
$ docker container prune
$ docker image prune
$ docker volume prune
$ docker network prune
|
イメージファイルを作るよ
1
|
docker save [IMAGE_ID] -o [FILE_NAME]
|
作ったイメージファイルをdockerに取り込むよ
1
|
docker load -i [FILE_NAME]
|
シェルを実行しちゃう
1
|
docker exec -it [CONTAINER_NAME] /bin/bash
|
1
|
docker attach [CONTAINER_NAME]
|
抜けるときは Ctrl+p
-> Ctrl+q
キルのシグナルはコンテナをダウンさせるので注意
アプリの開発では単一コンテナではなく、コンポーザーを使用して本番環境を模すことが多いでしょ。
1
2
|
docker-compose -f docker-compose-xxxxx.yml build --no-cache --progress plain
docker-compose -f docker-compose-xxxxx.yml up
|
大きな変更があるときは --no-cache
つけるといいかも
--progress plain
はDockerfileの進捗を詳細に表示する
たまにカーソルの位置がバグるキモい挙動するので後述するrun バージョンの方がいいかも
1
|
docker-compose exec [CONTAINER_NAME] rails console
|
execのような問題が起きたことはないが、新しくコンテナを起動するので若干時間がかかるのかも。
下の例はすでにdocker-compose upされている前提です
依存コンテナ(dbとか)が起動してないなら--no-depsを外せばいいと思う
1
|
docker-compose run --no-deps -e RAILS_ENV=development [CONTAINER_NAME] bundle exec rails console
|
コメント