# dockerの簡単な使い方 ## オプション - `-e` 環境変数, mysqlの場合はPWとかユーザ名とか。公式のdockerhubに大体設定できる項目が書いてある。 - `-v` マウント: ファイル単位じゃなくてディレクトリ単位。 - たしか絶対パスのみ。なので - `$(pwd)/sharedData:/sharedData` - とかやるといいのかしら。 - **左が自分のマシン、右がdocker。** - `-p` ポートバインド。 - `33306:3306` - みたいに書く - **左が自分のマシン、右がdocker** - `--rm` : そのコンテナが死んだら削除する。 - これないとディスクとられまくってだるい - `-d` : デーモン。 - これがないとバックグランドにならない。 - バックグラウンドにしたときにログみるのは `docker logs <id>` でできる。 - フォアグラウンド実行のときは、そのまま標準出力に出てくる。 - `--name <name>`: 名前設定できる。 - `docker stop <name>` で停止できて便利。 - なお --rm をしていないと、stopしても `docker rm <name>` しないと、ヒストリから同じコマンド叩くと、「その名前のコンテナはもうあります!」と怒られてしまう。 ### 発展 - `--entrypoint bash` - 普通にrun すると動いてしまうプログラムの中で、環境変数を確認したりディレクトリやファイルなどを確認したいときに entrypointを上書きする。 - ちなみにentrypointとcmdは結構面倒臭い概念なのでドキュメント参照のこと。 - 中に入りたい - `docker exec -ti <id> bash(or sh。bashがないこともある)` - `-ti`: (これは標準入出力につなぐ) - `bash`: (sh。bashがないこともある。) - これは別のプロセスを起動してbashで入れる。 - データを永続化したい - docker volume create して、 -v するときに左側にその名前を書いてあげればOK - `docker volume create mysql-data-1` - `docker run -d -v mysql-data-1:/var/mysql/data mysql` - みたいな感じ。 ## 注意点 オプションはrun の直後から コンテナ名(`mysql:latest`とか) の間に書かないといけない。末尾に書いたらだめ。 ### サンプル なお以下のコードはバックスラッシュの末尾にスペースが入ってしまっているので、コピペしても動かない…… - MySQL ```bash docker run -ti \ -e MYSQL_ROOT_PASSWORD="_" \ -e MYSQL_ALLOW_EMPTY_PASSWORD="_" \ -e MYSQL_RANDOM_ROOT_PASSWORD="_" \ --rm \ --name mysql-1 \ mysql ``` - Redis ```bash docker run \ -d \ -p 6379:6379 \ --rm \ --name redis-1 \ redis ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up