Hi Andrey. Actually, I should have mentioned this first but I don't mean "share" in the sense of sharing a data-dir with two database instances. Rather, I mean "share" in the context of Host to Container. I will only be running mysql in the container, not the host. So my objective is basically to offer the container mysql a valid data-dir *from* the host. That's it. Is it doable?
On Mon, Jul 9, 2018 at 5:13 PM, Andrey Repin <[email protected]> wrote: > Greetings, Tony P! > > > What's the correct way to share the mysql/mariadb data dir of the host > > system to a container and map the permissions correctly? > > There's no correct way to *share* the database directory. > Database engine simply do not expect the shared locks in the slightest. > > > I have been > > struggling with this for a couple of days. I'm sorry if this question has > > been asked before, but I have searched thoroughly and not been able to > find > > the solution yet. Basically what I have done so far: > > > > Install mariadb-server on both host and container and: > > > > $ 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 > > Unfortunately, this breaks the container and prevents it from starting > since the mapping isn't allowed. > > > > $ 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" > > I'm basically following this article > > (https://stgraber.org/2017/06/15/custom-user-mappings-in-lxd-containers/ > ) > > written by Stéphane Graber (the super awesome primary LXD developer) to > > achieve this. I'll admit that I don't fully understand what's going on > here, > > if someone could help me understand my mistake a bit better, I'd really > > appreciate it. I have a feeling I have the range wrong (1000?). I > previously > > attempted doing the same by manually adding the mysql user/group and > trying > > to map those (instead of installing mysql), but that also didn't work out > > (Same error). This is what I tried before trying the mapping): > > > > $ sudo groupadd mysql > > $ sudo useradd -r -g mysql mysql > > > > I also tried with: > > $ printf "both $(id -u mysql) $(id -u mysql)" | lxc config set > $CONTAINER_NAME raw.idmap - > > > > Then the error I get is: > > > > $ sudo lxc info --show-log tmp3 > > > > Name: tmp3 > > Remote: unix:// > > Architecture: x86_64 > > Created: 2018/07/09 20:32 UTC > > Status: Stopped > > Type: persistent > > Profiles: default > > > > Log: > > > > lxc tmp3 20180709204423.805 ERROR lxc_conf - conf.c:lxc_map_ids:2919 - > > newgidmap failed to write mapping "newgidmap: gid range [114-115) -> > > [114-115) not allowed": newgidmap 30081 114 114 1 0 100000 114 115 > 100115 65421 > > lxc tmp3 20180709204423.805 ERROR lxc_start - start.c:lxc_spawn:1661 > - Failed to set up id mapping. > > lxc tmp3 20180709204423.876 WARN lxc_network - > > network.c:lxc_delete_network_priv:2607 - Failed to remove interface > > "vethYL869L" from "lxdbr0": Invalid argument > > lxc tmp3 20180709204423.876 ERROR lxc_container - > > lxccontainer.c:wait_on_daemonized_start:834 - Received container state > "ABORTING" instead of "RUNNING" > > lxc tmp3 20180709204423.877 ERROR lxc_start - > start.c:__lxc_start:1887 - Failed to spawn container "tmp3" > > lxc 20180709204423.897 WARN lxc_commands - > > commands.c:lxc_cmd_rsp_recv:130 - Connection reset by peer - Failed to > > receive response for command "get_state" > > > > > > I'm using LXD 3.0.1 running on host Ubuntu 18.04 amd64 and testing with > a Ubuntu 18.04 amd64 container > > > > Thanks for your help in advance!! > > > > -- > With best regards, > Andrey Repin > Tuesday, July 10, 2018 0:11:53 > > Sorry for my terrible english... > _______________________________________________ > lxc-users mailing list > [email protected] > http://lists.linuxcontainers.org/listinfo/lxc-users
_______________________________________________ lxc-users mailing list [email protected] http://lists.linuxcontainers.org/listinfo/lxc-users
