コマンド
docker login
・dockerにログイン
docker run
オプション
--name
--rm
--volume
--it コンテナ内に入る
--p
--env
-v ストレージをホストとコンテナで共有する(ストレージ永続化)
docker run
#オプション
docker run --name
docker run --rm
docker run --volume
docker run --it
docker run --p
docker run --env
docker ps
・起動中のコンテナを表示
・停止中のコンテナは表示されない
docker ps
docker ps -a //停止中のコンテナも表示
docker start/stop/restart
・コンテナ一つを操作
・いづれも削除はしないので残る
docker start
docker stop
docker restart
docker exec
・起動中のコンテナに入らずコマンドを実行できる
docker exec コンテナ名 コマンド
起動中のコンテナに入らずコマンドを実行
docker exec mycentos cat /etc/redhat-release
コンテナに入る場合は「--it」オプションを付ける
docker exec -it コンテナ名 /bin/bash
docker exec -it //オプション
docker exec -it mycentos /bin/bash //起動中のコンテナに入る
docker rm
・停止中のコンテナを削除(コンテナのデータも消える)
Exaple
docker rm コンテナ名
docker rm mycentos
※起動中のコンテナを削除する場合は「-f」オプションをつける
Exaple
docker rm -f
docker rm -f mycentos
docker images
・ローカルにあるimageを全て表示
Exaple
docker images
docker rmi
・dockerイメージを削除する
・起動中コンテナのイメージは削除できない
・dockerイメージは依存関係があるので、ベースイメージは削除できない(削除するにはイメージを使用しているコンテナを削除しないといけない)
docker rmi イメージ指定
Exaple
docker rmi feb5d9fea6a5
コンテナで使用しているイメージがある状態で削除しようとした時のエラー
Error response from daemon: conflict: unable to delete feb5d9fea6a5 (must be forced) - image is being used by stopped container ac6b3993d772
docker build
・dockerfileからイメージを生成
docker build Dockerfilesパス
Exaple
docker build /psth/to/dockerfiles
docker cp
・コンテナとホストマシンでファイルのやりとりを行うコマンド
・ログファイルや設定ファイルの取り出しや入力で使用する
ホスト→コンテナへコピー
docker cp ホストファイルのパス コンテナ指定:コンテナのパス
Example
docker cp command/sample.txt mycentos:/opt
コンテナ→ホストへコピー
docker cp コンテナ指定:コンテナファイルのパス ホストのパス
Example
docker cp mycentos:/opt/container.txt /Users/naoki/Desktop/Udemy_Docker
docker logs
dockerコンテナのログ出力
・原因不明のコンテナ停止
・アクセスログなど
docker logs コンテナ名
Example
docker logs mycentos
※リアルタイムログは「-f」オプションをつける
docker logs -f mycentos
ストレージの永続化方法
・ホストとコンテナでフォルダを共有する
docker run -v ホストのパス:コンテナのパス イメージ名
Example
docker run -v /User/username/path/to/folder:/ver/www/html
Dockerfile
・dockerイメージをコード化したもの
・ファイルを読むと構成がわかる
・オリジナルイメージを作成できる
・設定ファイルなども変更できる
FROM:ベースとするDockerイメージを指定
mysql:8.0
RUN:OSのコマンドを実行する際に使用
RUN apt-get update -y
ADD:コンテナへのコピー(COPYと類似)
COPY:ファイルをイメージに追加する
COPY /path/to/hostfile /path/to/containerfile
COPY my.conf /etc/mysql/conf.d
CMD:コンテナ起動時に実行するコマンドを記述
ENV
・環境変数を設定(DBユーザー、動作環境(localなど))
・直接書き込みなので固定値(ユーザーによって変えれない)
ENV MYSQL_USER = root
ENV MYSQL_DATEBASE = root
ENV MYSQL_ROOT_PASSWORD = root