ホスト システムの mysql/mariadb データ ディレクトリをコンテナーに共有し、アクセス許可を正しくマップする正しい方法は何ですか? 私はこれに数日間苦労しています。この質問が以前に行われた場合は申し訳ありませんが、徹底的に検索しましたが、まだ解決策を見つけることができませんでした. 基本的に私がこれまでに行ったこと:
ホストとコンテナーの両方に mariadb-server をインストールします。
$ printf "lxd:$(id -u mysql):1\nroot:$(id -u mysql):1\n" | sudo tee -a /etc/subuid
$ printf "lxd:$(id -g mysql):1\nroot:$(id -g mysql):1\n" | sudo tee -a /etc/subgid
$ sudo systemctl restart lxd
$ printf "uid $(id -u mysql) 1000\ngid $(id -g mysql) 1000" | lxc config set $CONTAINER_NAME raw.idmap -
$ lxc restart $CONTAINER_NAME
$ sudo lxc config device add $CONTAINER_NAME mysql disk source=/var/lib/mysql path=/var/lib/mysql
残念ながら、これによりコンテナが破損し、マッピングが許可されていないため、起動できなくなります。
$ sudo lxc info --show-log ub1804x64-3
Name: ub1804x64-3
Remote: unix://
Architecture: x86_64
Created: 2018/07/09 15:30 UTC
Status: Stopped
Type: persistent
Profiles: default
Log:
lxc ub1804x64-3 20180709154554.682 ERROR lxc_conf - conf.c:lxc_map_ids:2919 - newuidmap failed to write mapping "newuidmap: uid range [1000-1001) -> [114-115) not allowed": newuidmap 6725 0 100000 1000 1000 114 1 1001 101001 64535
lxc ub1804x64-3 20180709154554.682 ERROR lxc_start - start.c:lxc_spawn:1661 - Failed to set up id mapping.
lxc ub1804x64-3 20180709154554.755 WARN lxc_network - network.c:lxc_delete_network_priv:2607 - Failed to remove interface "veth38DOB9" from "lxdbr0": Invalid argument
lxc ub1804x64-3 20180709154554.755 ERROR lxc_container - lxccontainer.c:wait_on_daemonized_start:834 - Received container state "ABORTING" instead of "RUNNING"
lxc ub1804x64-3 20180709154554.756 ERROR lxc_start - start.c:__lxc_start:1887 - Failed to spawn container "ub1804x64-3"
lxc 20180709154554.775 WARN lxc_commands - commands.c:lxc_cmd_rsp_recv:130 - Connection reset by peer - Failed to receive response for command "get_state"
私は基本的にこの記事( https://stgraber.org/2017/06/15/custom-user-mappings-in-lxd-containers/ ) に従っています Stéphane Graber (非常に素晴らしいプライマリ LXD 開発者) によって書かれたこれを達成するために. ここで何が起こっているのか完全には理解していないことを認めます。誰かが私の間違いをもう少しよく理解するのを手伝ってくれたら、本当に感謝しています。範囲が間違っている気がします(1000?)。以前、手動で mysql ユーザー/グループを追加して (mysql をインストールする代わりに) それらをマップしようとして同じことを試みましたが、それもうまくいきませんでした (同じエラー)。これは、マッピングを試す前に試したものです):
$ sudo groupadd mysql
$ sudo useradd -r -g mysql mysql
ホストUbuntu 18.04 amd64で実行されているLXD 3.0.1を使用しており、Ubuntu 18.04 amd64コンテナーでテストしています