1 |
Hey there, |
2 |
|
3 |
as for the /etc/hostname when sharing /etc/ as a volume… This ain’t a |
4 |
problem as /etc/hostname is taken care of by the docker-engine (in previous |
5 |
versions they used it to discover other hosts). |
6 |
|
7 |
As you can see in the snippet below, /etc/hostname is local, while it is |
8 |
possible to create a file test in /etc/, which is also present in the |
9 |
container I mounted the volumes from. |
10 |
|
11 |
$ docker run -d -v /etc/ --name host1 ubuntu tail -f /dev/null |
12 |
3f90929cc4b761096b600d5e2b02c61ec2e26ba74167a71b2da73d28d2274dba |
13 |
$ docker run -ti --volumes-from host1 --name host2 ubuntu bash |
14 |
root@dd0167aec38e:/# cat /etc/hostname |
15 |
dd0167aec38e |
16 |
root@dd0167aec38e:/# echo "huhu" > /etc/test |
17 |
root@dd0167aec38e:/# exit |
18 |
$ docker exec host1 cat /etc/test |
19 |
|
20 |
To me the /etc/hostname problem is just to make Gentoo play nice among |
21 |
other distros. As described below, this is (IMHO) a sound solution to |
22 |
propagate the underlying hostname to the containers. |
23 |
|
24 |
Cheers Christian |
25 |
|
26 |
|
27 |
On 23 August 2016 at 23:22:44, William Hubbs (williamh@g.o) wrote: |
28 |
|
29 |
On Tue, Aug 23, 2016 at 04:25:30PM -0400, Rich Freeman wrote: |
30 |
> On Tue, Aug 23, 2016 at 3:57 PM, William Hubbs <williamh@g.o> |
31 |
wrote: |
32 |
> > |
33 |
> > I am planning to change the logic in /etc/init.d/hostname so that if |
34 |
> > /etc/hostname exists, the first word out of that file will be used as |
35 |
> > the hostname rather than any setting in /etc/conf.d/hostname. If you |
36 |
> > don't want /etc/hostname, just don't create it and the settings from |
37 |
> > /etc/conf.d/hostname will still be used. |
38 |
> > |
39 |
> |
40 |
> Keep in mind that this is potentially problematic for a few reasons: |
41 |
> |
42 |
> 1. The hostname could change after openrc is done setting it. If it |
43 |
> does, a program that reads /etc/hostname won't get the real hostname. |
44 |
|
45 |
This is also true for /etc/conf.d/hostname, so I don't see the problem |
46 |
here. |
47 |
|
48 |
> 2. You could have a situation where multiple containers use the same |
49 |
> /etc. Obviously in this situation you wouldn't want to store the |
50 |
> hostname anywhere in /etc unless you wanted them to all have the same |
51 |
> hostname. It would be better to obtain it from dhcp, or to have it |
52 |
> set before init is run during initialization. |
53 |
|
54 |
|
55 |
/etc/init.d/hostname doesn't run inside containers, so this is not |
56 |
relevant. |
57 |
|
58 |
> The main danger is people not thinking of all the scenarios. I'm not |
59 |
> quite sure why we even need /etc/hostname now given these issues and |
60 |
> the fact that we've apparently gotten along for a long time without |
61 |
> it. Have we ever gotten around to making /etc/mtab a symlink yet? I |
62 |
> know it wasn't for a long time. It seems like we are moving away from |
63 |
> container support when we should be moving towards it if anything... |
64 |
|
65 |
Container support is controlled by the keyword line in dependencies. |
66 |
OpenRC can detect most containers, so if you put the proper keywords on |
67 |
that line and RC_SYS is set correctly or the container is autodetected |
68 |
properly, openrc will not run the scripts that it shouldn't run in the |
69 |
container. |
70 |
|
71 |
Yes, /etc/mtab is a symlink by default now; that was taken care of a |
72 |
while back. |
73 |
|
74 |
William |