前提・実現したいこと
SQLServer on LinuxをCentOS7+Dockerコンテナで稼働させます。
hostにUserを登録して、以下ディレクトリをマウントして永続化します。
-v /home/<username>:/var/opt/mssql
また、hostにはsambaをインストール・設定して、/home/<username>ディレクトリをWindowsから共有フォルダとして利用できるようにします。
該当ユーザー(<username>)の認証でのみアクセスできるよう設定します。
共有フォルダの目的は、主にmdf,ldfやバックアップファイル等をWindowsとやり取りすることです。
各ユーザーは基本的にLinuxを意識せず、Windows上からのManagement Studioとエクスプローラ操作のみでこの環境を運用します。
発生している問題
SQLServer on Linuxがroot権限で稼働しているので、バックアップファイル等を作成すると、そのファイルもroot権限でしか触れません。
各々のユーザーの権限でバックアップファイルをLinux⇒Windowsに取り出すことができません。
該当のソースコード
docker run --name user01sql2017
-e 'ACCEPT_EULA=Y'
-e 'SA_PASSWORD=<userstrongpassword>'
-e 'MSSQL_LCID=1041'
-e 'MSSQL_COLLATION=Japanese_CI_AS'
-p 1401:1433
-v /etc/passwd:/etc/passwd:ro
-v /etc/group:/etc/group:ro
-v /home/user01:/var/opt/mssql
-d mcr.microsoft.com/mssql/server:2017-latest
試したこと
docker runを該当ユーザーで実行→アクセス拒否
visudoでroot権限を記述してdocker run→コンテナは作成されるがExitedのまま稼働できず、logにはやはりアクセス拒否
ユーザーをdockerグループに所属させてdocker run→結局root権限になる
まだまだ知識が追い付かず、基本的なところを抜かしているかもしれません。
手法に拘りすぎているようで、発想の転換が必要なようにも思うのですが、アイデアが出てきません。
何かご教授いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/05 09:12 編集