> On Aug. 12, 2015, 6:13 p.m., Timothy Chen wrote: > > src/slave/flags.cpp, line 391 > > <https://reviews.apache.org/r/37114/diff/2/?file=1034775#file1034775line391> > > > > This will cause problem in the docker containerizer since we also try > > to mount in the socket when we launch executors in a image, as I don't > > think docker run -v takes a host volume with unix:///
run would bind mount the path inside the container and would not like unix:: in the volume path ... >From man pages of docker -H, --host=[unix:///var/run/docker.sock]: tcp://[host:port] to bind or unix://[/path/to/socket] to use. The socket(s) to bind to in daemon mode specified using one or more tcp://host:port, unix:///path/to/socket, fd://* or fd://socketfd. which means either a) in src/docker.cpp, we bring a check, which looks for prefix fd or tcp or unix, if nothing we add unix:/// to it or b) the code which in run docker, wipes off prefix from the path even though slave may not connect with docker daemon running a different host, it might have to connect with docker daemon running a tcp port on the same host. Kindly suggest? > On Aug. 12, 2015, 6:13 p.m., Timothy Chen wrote: > > src/docker/executor.hpp, line 43 > > <https://reviews.apache.org/r/37114/diff/2/?file=1034772#file1034772line43> > > > > We call it socket in one place and host in another, I think we should > > name them all the same. > > > > We're not expecting Mesos to call another host, so let's keep the > > naming consistent as socket. I will make this change - Vaibhav ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/37114/#review95137 ----------------------------------------------------------- On Aug. 7, 2015, 9:19 p.m., Vaibhav Khanduja wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/37114/ > ----------------------------------------------------------- > > (Updated Aug. 7, 2015, 9:19 p.m.) > > > Review request for mesos, Benjamin Hindman, Ben Mahler, Timothy Chen, and > Vinod Kone. > > > Bugs: MESOS-3187 > https://issues.apache.org/jira/browse/MESOS-3187 > > > Repository: mesos > > > Description > ------- > > MESOS-3187, support docker host command line option. > > Docker daemon supports starting on a non-default port. Such scenarios would > needed when starting Docker daemon on TCP or non-default unix port. Mesos > slave does not work if Docker daemon is started on any of such non-default > port. The code change is needed in Mesos slave to accept this parameter so as > connect for its operations to the right Docker daemon. The change is made in > Mesos slave, so as it is available to any framework making using Docker > executor. > > The code is added to start slave binary with --docker_host, instructing it to > connect on port as specified in the parameter. The default value of > --default_host is "unix:///var/run/docker.sock, which is default port for > Docker daemon. > > The main class src/docker.cpp/.hpp is kept backward compartible to make > Docker cli execute on default Docker port. > > > Diffs > ----- > > src/docker/docker.hpp 38e5299ad38b9e20501387f2193b0fa448e49e3e > src/docker/docker.cpp 1367de8a7bbbda6348a30e4ef4c616378e450250 > src/docker/executor.hpp fa13b6e9905051eef27d3a51b75a5c86fdad0dd7 > src/docker/executor.cpp 256d53d59d5cda63bbeb8c987ce0019e24b9fb77 > src/slave/containerizer/docker.cpp 8f5d302477b216df9ac2f59156304bbc4a96f24b > src/slave/flags.cpp 82b6cf47af26f0533ff603a67240777e9a9b986e > src/tests/containerizer/docker_containerizer_tests.cpp > 80ed60e2b0fa39e8302867a7cb6a7388c25f9a40 > src/tests/containerizer/docker_tests.cpp > a4a2725c05ae0cb88426c587f7ded0da77154edc > src/tests/environment.cpp 525347090f38b61f2085a2b2a6002d28d11b222f > src/tests/flags.hpp 364495695c5915e54257014aeebb1e212d3da6fc > > Diff: https://reviews.apache.org/r/37114/diff/ > > > Testing > ------- > > Following scenarios were executed to test the code changes. Kindly suggest if > more test-cases are required: > > > a) Mesos slave with unix port : unix:///var/run/docker_myport.sock > > i) Start slave with --docker_host parameter > "unix:///var/run/docker_myport.sock > ii) Using a framework, in my case Marathon, post a Docker job > iii) The docker job does get started on the slave, confirmed with docker > ps command output > > docker -H unix:///var/run/docker_myport.sock ps > > CONTAINER ID IMAGE COMMAND CREATED > STATUS PORTS NAMES > 07fc4ec86bac mygoserver "/bin/sh -c /mygoser 19 minutes ago > Up 19 minutes */tcp, */udp > mesos-20150731-104052-1051068938-5050-7913-S33.17b355cd-2754-4fb2-a558-66820dff033c > > iv) Stop or destroy the job from Marathon GUI > > b) Two mesos slave with non-default docker port > i) On two different hosts, start slave, with one running on default port > and other non-default. The start slaves with attributes - default and or > non-default. > ii) Give jobs to these slaves, using Marathon UNIQUE attribute, selecting > slave - non-default & default > iii) Stop/destroy the jobs > > d) Modified unit test-case taking docker port value - make check > > > Thanks, > > Vaibhav Khanduja > >