什么在我的笔记本电脑上启动这个docker程序?

每次启动我的Lubuntu 16.04笔记本电脑,我都可以看到我有一个正在运行的docker集装箱:

$ ps -ef | grep docker root 1724 1 3 21:17 ? 00:01:30 /usr/bin/dockerd -H fd:// root 1774 1724 0 21:17 ? 00:00:04 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc root 4750 1774 0 21:17 ? 00:00:00 docker-containerd-shim 72541a4648b890132985daf2357d1130b8b5208cf12ede607b93ab2987629719 /var/run/docker/libcontainerd/72541a4648b890132985daf2357d1130b8b5208cf12ede607b93ab2987629719 docker-runc stephane 10755 1793 0 22:07 pts/0 00:00:00 grep docker 

它为端口80上的Jenkins应用程序提供服务,并请求浏览器中的localhost/redirect到http://localhost/login?from=%2F并显示一个Jenkins警告页面:

 Unlock Jenkins To ensure Jenkins is securely set up by the administrator, a password has been written to the log (not sure where to find it?) and this file on the server: 

wget请求显示:

 $ wget localhost/ --2017-05-23 22:09:55-- http://localhost/ Resolving localhost (localhost)... 127.0.0.1 Connecting to localhost (localhost)|127.0.0.1|:80... connected. HTTP request sent, awaiting response... 403 Forbidden 2017-05-23 22:09:55 ERROR 403: Forbidden. 

我怎么知道哪个服务正在启动这个docker进程?

我查看了/etc/init.d/目录:

 $ l /etc/init.d/ alsa-utils* checkroot-bootclean.sh* halt* mattermostd* nginxd* rc* single* uuidd* anacron* checkroot.sh* hostname.sh* mountall-bootclean.sh* ntp* rc.local* skeleton whoopsie* apachedsd* console-setup* httpd* mountall.sh* ondemand* rcS* ssh* x11-common* apparmor* cron* hwclock.sh* mountdevsubfs.sh* openvpn* README tomcatd* apport* cups* irqbalance* mountkernfs.sh* php-fpm* reboot* udev* avahi-daemon* cups-browsed* keyboardd* mountnfs-bootclean.sh* plymouth* redis* ufw* bluetooth* dbus* killprocs* mountnfs.sh* plymouth-log* resolvconf* umountfs* bootmisc.sh* docker* kmod* mysqld* postfix* rsync* umountnfs.sh* cgroupfs-mount* dropboxd* lightdm* networking* pppd-dns* rsyslog* umountroot* checkfs.sh* grub-common* mariadbd* network-manager* procps* sendsigs* urandom* 

/etc/init.d/docker是我的,从目录中删除它,一个正在运行的docker进程仍会重新启动。

我删除了/etc/init.d/docker文件,重新启动,并且有一个docker进程:

 $ ps -ef | grep docker root 1560 1 5 22:15 ? 00:00:06 /usr/bin/dockerd -H fd:// root 1645 1560 0 22:15 ? 00:00:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc root 4644 1645 0 22:15 ? 00:00:00 docker-containerd-shim 069db46cca05d43c35f05ff50aaa836507cbf69e4e3d9443b6b859d0edb5b076 /var/run/docker/libcontainerd/069db46cca05d43c35f05ff50aaa836507cbf69e4e3d9443b6b859d0edb5b076 docker-runc stephane 5520 1741 0 22:17 pts/0 00:00:00 grep docker 

所以我查找了所有这些文件中的任何docker,但没有发现任何名为docker的东西:

 $ cd /etc/init.d/ [stephane@stephane-ThinkPad-X301 init.d] $ grep.sh docker [stephane@stephane-ThinkPad-X301 init.d] 

每次我启动我的笔记本电脑时,这个docker程序都在那里,即使在离线时也是如此。

什么启动这个docker过程?

Docker正在您的环境中由systemd启动。 您可以运行以下命令禁用整个引擎:

 sudo systemctl disable docker sudo systemctl stop docker 

您也可以只停止正在运行的容器(Shim和Jenkins应用程序):

 sudo docker ps # lists the running containers along with their container id sudo docker update --restart=no $container_id sudo docker stop $container_id 

如果你知道你不需要这个容器并想永久删除它,那么你可以运行这个而不是上面的两个最后的命令:

 sudo docker rm -f $container_id 

如果当前正在运行, -f开关也会停止容器。


编辑:从您的评论,您的容器正在群集模式下运行,这是重新部署它。 要停止它,首先find正在运行它的堆栈或服务。

 sudo docker stack ls sudo docker service ls 

如果您看到列出的堆栈,可以使用以下命令将其删除:

 sudo docker stack rm $stack_name 

如果没有列出堆栈,或者它们不适用于此容器,则可以使用以下方法删除该服务:

 sudo docker service rm $service_name 

Lubuntu 16.04 默认带有systemd。 在某些时候,你必须在docker中启动一个jenkins实例 – 很难准确地确定最初启动过程的是什么。 然而, systemd将是目前导致它开始的东西。 为了阻止它运行,运行以下命令:

systemctl status docker < – 找出systemctl认为docker正在运行。

它可能会显示这样的事情:

● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2017-05-21 22:59:46 EDT; 1 day 17h ago Docs: http://docs.docker.com Main PID: 1314 (dockerd-current) Tasks: 14 (limit: 8192) CGroup: /system.slice/docker.service └─1314 /usr/bin/dockerd-current --add-runtime oci=/usr/libexec/docker/docker-runc-current --default-runtime=oci --containerd /run/containerd.sock --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --selinux-enabled --log-driver=journald

要停止它,运行systemctl stop docker然后systemctl disable docker 。 作为最后的手段,如果这不起作用,你可以运行systemctl mask docker