• Docker配置整理


    目录:

    以非root用户身份管理Docker

    默认情况下,Docker运行权限由用户root所有,而其他用户只能通过sudo使用它。Docker守护程序始终以root用户身份运行。

    如果不想在docker命令前加上sudo,需要创建一个名为docker的Unix组并向其添加用户。

    要创建docker组并添加您的用户

    1.创建docker组。

    $ sudo groupadd docker

    2.将您的用户添加到该docker组。

    $ sudo usermod -aG docker $USER

    3.注销并重新登录,以便重新评估用户组的成员身份。

    如果在虚拟机上进行测试,则可能需要重新启动虚拟机才能使更改生效。

    在桌面Linux环境(如X Windows)上,完全注销会话,然后重新登录。

    4.验证您是否可以运行docker命令sudo

    $ docker run hello-world

    配置Docker以在启动时启动

    大多数当前的Linux发行版(RHEL,CentOS,Fedora,Ubuntu 16.04及更高版本)使用systemd管理系统自动启动的服务。Ubuntu 14.10及以下使用upstart

    systemd

    $ sudo systemctl enable docker

    要禁用此行为,只需将enable改为disable

    $ sudo systemctl disable docker 

    如果需要添加HTTP代理,为Docker运行时文件设置不同的目录或分区,或进行其他自定义,请参阅 自定义systemd Docker守护程序选项

    upstart

    Docker自动配置为在启动时启动 upstart。要禁用此行为,请使用以下命令:

    $ echo manual | sudo tee /etc/init/docker.override

    chkconfig

    $ sudo chkconfig docker on

    配置Docker守护程序监听连接的位置

    默认情况下,Docker守护程序监听UNIX套接字上的连接以接受来自本地客户端的请求。通过将Docker配置为监听IP地址和端口以及UNIX套接字,可以允许Docker接受来自远程主机的请求。有关此配置选项的更多详细信息,请参阅Docker CLI参考文章中的“将Docker绑定到另一个主机/端口或unix套接字”部分。

    配置Docker以接受远程连接(docker.service)可以使用systemd的Linux发行版的systemd单元文件来完成,例如RedHat,CentOS,Ubuntu和SLES的最新版本,或者daemon.json推荐用于不使用systemd的Linux发行版的文件。

    配置Docker同时使用systemd单元文件和daemon.json 文件来侦听连接会导致冲突,从而阻止Docker启动。

    使用systemd单元文件配置远程访问

    1.使用以下命令编辑文件docker.service

    sudo systemctl edit docker.service

    2.添加或修改以下行,替换您自己的值

    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375

    3.保存文件。

    4.重新加载systemctl配置。

    $ sudo systemctl daemon-reload 

    5.重启Docker。

    $ sudo systemctl restart docker.service

    6.通过查看netstat的输出确认dockerd是否正在侦听已配置的端口。

    $ sudo netstat -lntp | grep dockerd
    tcp        0      0 127.0.0.1:2375          0.0.0.0:*               LISTEN      3758/dockerd

    使用配置远程访问 daemon.json

    1.将hosts数组设置/etc/docker/daemon.json为连接到UNIX套接字和IP地址,如下所示:

    {
    "hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"]
    }

    2.重启Docker。

    3.通过查看netstat确认的输出是否dockerd正在侦听已配置的端口来检查更改是否得到遵守。

    $ sudo netstat -lntp | grep dockerd
    tcp        0      0 127.0.0.1:2375          0.0.0.0:*               LISTEN      3758/dockerd
  • 相关阅读:
    【未完成】【oracle】add_months与add_days
    【java】[null]的问题
    PID控制算法研究
    matlab函数:residue和residuez的用法
    Windows入门基础:2.vs2013中Icon显示
    关于for()循环使用过程中遇到的问题(俄罗斯方块游戏中遇到的问题)
    Windows入门基础:1.关于CreateWindow()函数使用中遇到的问题
    error C4996: 'swprintf': swprintf has been changed to conform with the ISO C standard,set _CRT_NON_CONFORMING_SWPRINT
    QT5.3.2与VS2013 fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突_(解决方案)
    Java如何访问private变量
  • 原文地址:https://www.cnblogs.com/minglex/p/9559212.html
Copyright © 2020-2023  润新知