blog

docker (II) - コンテナの外部マウント

dockerとは?\n\ndocker exec コマンドを使ってコンテナ内に入り、やりたいことを実行するのが最も簡単でわかりやすい方法です。\nこれは基本的に、ホストマシンをコンテナ内部の...

Nov 29, 2020 · 2 min. read
シェア

ドッカーとは何ですか?

前回の記事では、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.7
    
  • nginx

    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
    
Read next

mybatisをゼロから手書きする - mybatisのトランザクション管理メカニズムを詳しく見る

このセクションでは、mybatisのトランザクション管理について説明します。 JDBCのトランザクション管理機構を使う:オブジェクトを使って、トランザクションをコミット、ロールバック、クローズします。...

Nov 29, 2020 · 9 min read