首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否以其他用户身份启动Docker守护程序?

是否以其他用户身份启动Docker守护程序?
EN

Stack Overflow用户
提问于 2018-03-29 00:35:59
回答 1查看 330关注 0票数 1

在RHEL中安装了Docker 17.x版本,并且低于excetption。

代码语言:javascript
复制
-bash-4.2$ docker version
Client:
 Version:      17.09.1-ce
 API version:  1.32
 Go version:   go1.8.3
 Git commit:   19e2cf6
 Built:        Thu Dec  7 22:23:40 2017
 OS/Arch:      linux/amd64
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.32/version: dial unix /var/run/docker.sock: connect: permission denied
-bash-4.2$

为了解决这个问题,我们引入了另一个用户组(docker- user ),并添加了该组中的所有用户。在那之后,我们运行这个命令,并能够运行docker。

代码语言:javascript
复制
sudo systemctl stop docker
sudo systemctl start docker
cd /var/run
sudo chown :docker-user docker.sock

但我们正面临另一个问题,每当VM重启时,DOCKER都不会运行。因此,我们决定将run docker设置为守护进程,并遵循以下步骤。

代码语言:javascript
复制
1. create docker.conf file under /etc/systemd/system/docker.service.d folder.
2. added this entry in docker.conf file 
  [Service]
  ExecStart=
  ExecStart=/usr/bin/docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
  ExecStartPost=/bin/chown :docker-user /var/run/docker.sock

添加此条目后,我们运行

代码语言:javascript
复制
1. sudo systemctl daemon-reload
2. sudo systemctl stop docker
3. sudo systemctl start docker

我们正处于异常状态下

代码语言:javascript
复制
-bash-4.2$ sudo systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/docker.service.d
           └─docker.conf
   Active: failed (Result: start-limit) since Wed 2018-03-28 09:10:50 PDT; 12s ago
     Docs: https://docs.docker.com
  Process: 23395 ExecStart=/usr/bin/docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock (code=exited, status=1/FAILURE)
 Main PID: 23395 (code=exited, status=1/FAILURE)

Mar 28 09:10:50 hostname systemd[1]: Failed to start Docker Application Container Engine.
Mar 28 09:10:50 hostname systemd[1]: Unit docker.service entered failed state.
Mar 28 09:10:50 hostname systemd[1]: docker.service failed.
Mar 28 09:10:50 hostname systemd[1]: docker.service holdoff time over, scheduling restart.
Mar 28 09:10:50 hostname systemd[1]: start request repeated too quickly for docker.service
Mar 28 09:10:50 hostname systemd[1]: Failed to start Docker Application Container Engine.
Mar 28 09:10:50 hostname systemd[1]: Unit docker.service entered failed state.
Mar 28 09:10:50 hostname systemd[1]: docker.service failed.

指导我如何将docker设置为守护进程

EN

回答 1

Stack Overflow用户

发布于 2018-03-29 10:17:20

所以,你已经做得很好了。

但是,此行为已内置于Docker中。对于用户组,docker守护进程将允许具有docker组的用户访问服务器(请务必记住,这与将根访问权限授予该组中的任何用户完全相同!)。如果您想指定一个不同的组,可以使用-g选项启动守护进程。

安装docker还会安装systemd服务单元来运行守护程序。启用它(以便它自动重启)的正确方法是sudo systemctl enable docker

在这一点上,您没有包含足够的日志来说明为什么守护进程不能为您启动-如果这是一个选项,我会尝试重新开始,因为我不知道您弄乱了什么,但是如果这不是一个选项,那么日志has日志可能会解释这个问题(可能是用户'docker‘在您拥有套接字之后不再访问它,但这只是一个猜测)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49539875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档