ドッカーとは何ですか?
前回の記事では、docker pull Imageの基本的な操作、起動コンテナの作成について説明しましたが、その後、問題があり、mysql、nginxの設定を行う方法を操作する必要がある場合は、2つの方法があります。
- docker exec コマンドを使ってコンテナの中に入り、やりたいことを実行するのが最も簡単で分かりやすい方法です。
- また、外部マウントを使用する方法がありますが、このメソッドは、基本的にファイルまたはフォルダのマッピングを行うには、ホストとファイルまたはフォルダの内側のコンテナは、マッピングを行うには、操作の外側のコンテナで行うことができるように直接、目的の操作を達成するために、内部のコンテナにマッピングすることができます。
ドッカーマウントコマンド
コンテナの起動には-vコマンドを使います。
$ docker run -d -p \ --name redis \ -v $PWD/docker/redis/redis.conf:/etc/redis/redis.conf \ -v $PWD/docker/redis/data:/data \ redis:latest redis-server /etc/redis/redis.conf \ --requirepass "" --appendonly yesパラメータの説明
-d: デーモンモードでコンテナを起動
--name: コンテナの名前
-コンテナのポート6379をホストのポート6379にマッピング。
-v $PWD/docker/redis/redis.conf:/etc/redis/redis.conf-v $PWD/docker/redis/data:/data: ホスト上のカレントディレクトリにあるredis.confをredis起動設定ファイルにマップ : ホスト上のカレントディレクトリにある/docker/reids/dataをコンテナ上の/dataにマウントredis:latest: イメージの指定
redis-server /etc/redis/redis.conf指定されたコンフィギュレーション・ファイルでredis-serverプロセスを開始します。--requirepass "123456" :redis-serverにリンクするためのパスワードを指定 --appendonly yes: データの永続化を有効にします。
こうすることで、外部の redis.conf、データファイル、フォルダを操作するときに、コンテナ内の対応するファイルに直接作用するようになります。
その他の一般的なマウント
mysql
docker run -d --privileged=true \ #コンテナへの root アクセスを設定する。 --name mysql5.7 -p \ -v /my/mysql/datadir:/var/lib/mysql \ -v /my/mysql/conf.d:/etc/mysql/conf.d \ -v /my/mysql/myf:/etc/mysql/myf \ -e MYSQL_ROOT_PASSWORD=yourpassword \ #rooユーザーのパスワードを指定する mysql:5.7nginx
docker run --name mynginx -d -p 80:80 \ -v /nginx/html:/usr/share/nginx/html \ -v /nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \ -v /nginx/logs:/var/log/nginx \ nginx




