dockerで非常に躓いたので、備忘録として残します。
Dockerfileで躓いたところ
使うdocker-imageをFROMで指定する
当たり前ですが、imageをFROMで指定しないと何を書いても動きません。
FROM
FROM centos:7
※centos7はサポートが結構間近なので気をつけましょう
docker-compose.ymlで躓いたところ
volumsでカレントディレクトリを指定して、docker側のrootディレクトリに送るとホットリロードになる
神機能なのでみなさん使いましょう。
また、特に設定をしてない場合はrootユーザーで入るので、ホームディレクトリがrootとなります。
ホームディレクトリに移動させたいファイルやディレクトリを指定しましょう。
docker-compose
volumes:
- .:/root
docker-compose.ymlに使うimageを書けばDockerfileが要らない
ケースバイケースだとは思いますが、Dockerfileで何かごにょごにょと処理をしない場合には、管理がしやすいのでdocker-compose.ymlに書きましょう
docker-compose.yml
version: "3"
services:
db:
image: mysql:5.7 #imageにdocker-imageを指定する
container_name: mysql
dockerが起動した瞬間すぐ落ちる時
tty: true
を付けましょう。永続的に起動します。
docker-compose.yml
version: "3"
services:
db:
image: mysql:5.7
container_name: mysql
tty: true #永続的に起動させたいコンテナに付ける
悪魔のコード
dockerの全てを破壊します。
最終手段で使いましょう。
dockerのimageやらネットワークやらを削除する
docker image prune #可動していないdocker-imageを削除します
docker container stop $(docker ps -aq) #可動している全てのdockerを停止します
docker image rm $(docker images ls) #docker-imageを全て削除します
また、dockerのコマンドは新しく(3年前に)なったそうです。こちらで確認しておきましょう。