Tiempo estimado de lectura: 16 minutos
Esta sección contiene un host Linux configurado para utilizarlo con acoplable con el proceso opcional.
A no root acoplable gestión de usuarios
Acoplable demonio está obligado a conectores Unix en lugar de puerto TCP. Por defecto, conectores Unix propiedad del usuario root
, otros usuarios pueden utilizar para acceder a ella sudo
. Acoplable demonio siempre ha sido root
ejecutarse como un usuario.
Si no desea escribir el prólogo de docker
la orden sudo
, crear un archivo llamado docker
grupo de UNIX y añadir usuarios a la misma. Cuando se inicia Docker de demonio, se crea esto puede ser un docker
Unix acceso los miembros del grupo zócalo.
advertencia
El
docker
grupo otorga alroot
usuario los privilegios equivalentes. Para obtener más información acerca de cómo influir en la seguridad del sistema, véase [* acoplable Daemon superficie de ataque.
precauciones :
Para ejecutar acoplable sin privilegios de root, consulte la ejecución como usuario no root acoplable daemon (modo sin raíces) .
Modo sin raíces está actualmente disponible como una característica experimental.
Para crear un docker
grupo y agregar usuarios, haga lo siguiente:
Crear un
docker
grupo.$ sudo groupadd docker
Añadir su usuario al
docker
grupo.$ sudo usermod -aG docker $USER
Cierre la sesión y volver a iniciarla para volver a evaluar su pertenencia al grupo.
Si el resultado es que en una máquina virtual, puede que tenga que reiniciar la máquina virtual para que los cambios surtan efecto.
Linux en el entorno de escritorio (tal como X Windows), la cancelación completa de la sesión, a continuación, inicie sesión de nuevo.
En Linux, puede ejecutar el siguiente comando para activar los cambios en el grupo:
$ newgrp docker
Compruebe que puede ejecutar el
docker
comando sin mandosudo
.$ docker run hello-world
Este comando descarga la imagen de prueba y ejecutarlo en un recipiente. Contenedor se está ejecutando, se imprimirá un mensaje informativo y salida.
Si se agrega un usuario a
docker
un grupo, se avanza el uso desudo
los comandos de la CLI del estibador de ejecución, es posible que aparezca el siguiente error, que se debe a lasudo
razón de la orden, lo que indica que su~/.docker/
directorio mediante permisos incorrectos cuando se creó.WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied
Para resolver este problema, elimine el
~/.docker/
directorio (se vuelve a crear automáticamente el directorio, pero se perderán todos los ajustes personalizados), o cambiar su propiedad y los permisos utilizando el siguiente comando:$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R $ sudo chmod g+rwx "$HOME/.docker" -R
Cargador de muelle configurado para iniciarse en el arranque
La mayoría de distribuciones de Linux (RHEL, CentOS, Fedora, Ubuntu 16.04 y posteriores) con el systemd
lanzamiento de un sistema de gestión de servicios para arrancar. En Ubuntu 14.10 y anteriores upstart
.
systemd
$ sudo systemctl enable docker
Para desactivar este comportamiento, disable
en su lugar.
$ sudo systemctl disable docker
Si es necesario agregar proxy HTTP, configurado para ejecutarse archivo acoplable cuando otro directorio o partición, o hacer otras personalizaciones, vea la opción demonio acoplable para personalizar el sistema .
upstart
Cargador de muelle está configurado automáticamente para utilizar la bota upstart
. Para desactivar este comportamiento, utilice el siguiente comando:
$ echo manual | sudo tee /etc/init/docker.override
chkconfig
$ sudo chkconfig docker on
El uso de otros motores de almacenamiento
Para obtener información sobre los diferentes motores de almacenamiento, consulte los controladores de almacenamiento . La lista de motores de motor y de almacenamiento de almacenamiento por defecto de las distribuciones de Linux compatibles y se puede utilizar en función del controlador núcleo de la máquina.
Configurar los controladores de registro predeterminados
Acoplable proporciona un recipiente para la recogida de todo se ejecuta en el anfitrión a través de una serie de registro de los conductores y los datos de vista de registro función . controlador de registro predeterminado json-file
de datos de registro de escritura en archivo en formato JSON en el sistema de archivos host. Con el tiempo, estos serán ampliar el tamaño de los archivos de registro, que puede conducir al agotamiento de los recursos de disco. Para aliviar estos problemas, controlador de registro alternativo de configuración (por ejemplo Splunk o el registro del sistema), o como la omisión del controlador de configuración del registro de rotación . Si los registros de conductor de recambio de configuración, consulte uso docker logs
para leer el controlador de registro de contenedor de registro remoto .
Acoplable dispuesta en una posición conectada a las escuchas daemon
Por defecto, acoplable demonio en un socket UNIX para escuchar las solicitudes de conexión desde el cliente local de recepción. Por acoplable configurado para escuchar en la dirección IP, el puerto y socket UNIX, permitiendo acoplable puede aceptar solicitudes desde el host remoto. Para más detalles sobre esta opción de configuración, consulte " acoplable CLI de referencia" artículo "se acoplable con destino a otro UNIX socket host / puerto o" sección.
clientes acoplable EE
clientes acoplable EE pueden obtener acceso a la CLI remota de paquetes cliente UCP UCP. paquete de software cliente UCP generada por la UCP, mediante la protección TLS mutua. Para obtener más información, por favor refiérase a las UCP CLI de acceso documentos.
Proteja su conexión
Antes del estibador configurado para aceptar conexiones desde un host remoto, es esencial para entender la ventana acoplable abierta a los riesgos de seguridad de red. Si no se toman medidas para proteger la seguridad de la conexión, los usuarios no root remotos pueden tener acceso de root en el host. Para obtener información sobre cómo usar el certificado TLS protege esta conexión más información, consulte la relacionada artículo sobre cómo proteger toma demonio de estibador .
Puede docker.service
utilizar el uso systemd Linuxd soltar archivos de unidades systemd (por ejemplo, la última versión de RedHat, CentOS, Ubuntu, y el SLES) acoplable configurado para aceptar conexiones remotas, o usar una daemon.json
distribución Linux de archivos recomendado no utiliza SystemD ser configurados.
systemd vs daemon.json
Cargador de muelle se puede configurar para utilizar
systemd
los archivos de la unidad ydaemon.json
la conexión de escucha de archivos puede conducir a un conflicto, lo que impide iniciar estibador.
Para systemd
los archivos de configuración de la unidad para el acceso remoto
Con el fin de usar un editor de texto
sudo systemctl edit docker.service
para abrir el archivo de sustitucióndocker.service
.Añadir o modificar la línea siguiente para reemplazar sus propios valores.
[Service] ExecStart= ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375
Guardar el archivo.
Recargar
systemctl
configuración.$ sudo systemctl daemon-reload
Reinicio del estibador.
$ sudo systemctl restart docker.service
Visualizando el resultado
netstat
con el fin de confirmardockerd
si es o no escucha en la configuración del puerto, para ver si acepta los cambios.$ sudo netstat -lntp | grep dockerd tcp 0 0 127.0.0.1:2375 0.0.0.0:* LISTEN 3758/dockerd
Para daemon.json
configurar el acceso remoto
Proporcionada en la
hosts
matriz/etc/docker/daemon.json
para ser conectadas a enchufes UNIX y direcciones IP, como sigue:{ "hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"] }
Reinicio del estibador.
Visualizando el resultado
netstat
con el fin de confirmardockerd
si es o no escucha en la configuración del puerto, para ver si acepta los cambios.$ sudo netstat -lntp | grep dockerd tcp 0 0 127.0.0.1:2375 0.0.0.0:* LISTEN 3758/dockerd
Habilitación de IPv6 en acoplable demonio
Para la ventana acoplable Daemon habilita IPv6 , consulte el soporte IPv6 está habilitado .
Solución de problemas
Compatibilidad del kernel
Si la versión del kernel de 3.10 o anterior a la falta de algunos de los módulos, el estibador no funcionan correctamente. Para comprobar la compatibilidad del núcleo, se puede descargar y ejecutar la check-config.sh
secuencia de comandos.
$ curl https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh > check-config.sh
$ bash ./check-config.sh
La secuencia de comandos sólo está disponible para Linux, no se aplica a MacOS.
Cannot connect to the Docker daemon
Si aparece un error como el siguiente, su cliente puede acoplable acoplable demonio se ha configurado para conectarse a otros hosts, y el anfitrión puede no ser accesible.
Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
Para ver el cliente está configurado para conectarse a qué host, compruebe el DOCKER_HOST
valor de las variables de entorno.
$ env | grep DOCKER_HOST
Si este valor de retorno de comandos, el cliente acoplable para conectarse a acoplable demonio que se ejecuta en el host. Si no se establece, a continuación, el cliente acoplable para conectarse a acoplable demonio que se ejecuta en el host local. Si se establece de forma incorrecta, utilice el siguiente comando para cancelar el ajuste:
$ unset DOCKER_HOST
Es posible que necesite tales como ~/.bashrc
o ~/.profile
editar sus miembros de archivo de entorno para evitar DOCKER_HOST
errores de las variables de ajuste.
Si DOCKER_HOST
como se espera la configuración, confirman acoplable demonio se está ejecutando en el host remoto, y un firewall o un corte de red no le impide conectar.
problema de reenvío IP
Si utiliza systemd
219 o versiones posteriores systemd-network
para configurar manualmente la red, contenedores acoplables pueden no ser capaces de acceder a su red. Desde la systemd
red de la versión 220, a la configuración de desvío dado ( net.ipv4.conf..forwarding
por defecto) es OFF . Esta configuración evita que el reenvío de IP. Esto también es acoplable a net.ipv4.conf.all.forwarding
activar los ajustes en el comportamiento de contenedores en conflicto.
Para resolver este problema en RHEL, CentOS o Fedora, por favor acoplable en su host editar /usr/lib/systemd/network/
el archivo <interface>.network
(por ejemplo: /usr/lib/systemd/network/80-container-host0.network
). A continuación, [Network]
agregue la siguiente sección bloque de código.
[Network]
...
IPForward=kernel
# OR
IPForward=true
...
Esta configuración permite el reenvío de IP desde el recipiente como se esperaba.
DNS resolver found in resolv.conf and containers can't use it
Utilizando el sistema de interfaz gráfica de usuario de Linux tiene típicamente una operación de funcionamiento del gestor de la red, el administrador de red mediante una dirección de bucle de retorno (por ejemplo, 127.0.0.1
o 127.0.1.1
) que se ejecuta en la dnsmasq
instancia a las solicitudes de caché DNS, y añade la entrada a /etc/resolv.conf
la. El dnsmasq
servicio puede acelerar las consultas DNS, sino que también proporciona un servicio DHCP. Esta configuración acoplable tiene su propio espacio de nombres de red no funciona, porque envase acoplable voluntad como 127.0.0.1
resolución de la dirección de bucle de retorno tales a sí mismo , y no es posible ejecutar un servidor DNS en la dirección de bucle invertido.
Si acoplable detecta /etc/resolv.conf
ninguna referencia servidor DNS completamente funcional, la siguiente advertencia se emite, y el servidor DNS público acoplable proporcionado por Google ( 8.8.8.8
y 8.8.4.4
) para la resolución DNS.
WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers
can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
Si usted ve esta advertencia, compruebe en primer lugar si dnsmasq
:
$ ps aux |grep dnsmasq
Si el contenedor tiene que resolver un host dentro de la red, el nombre común de las deficiencias del servidor. Tiene dos opciones:
- Se puede especificar un servidor DNS que se utilizará para estibador, o
- Se puede desactivar en NetworkManager
dnsmasq
. Si hace esto, NetworkManager sus servidores de nombres DNS real para agregar/etc/resolv.conf
, pero perderádnsmasq
los beneficios potenciales.
Sólo tiene que utilizar uno de estos métodos.
servidor DNS especificado ventana acoplable
La ubicación predeterminada del archivo de configuración es /etc/docker/daemon.json
. Puede --config-file
cambiar la ubicación del archivo de configuración del demonio de la bandera. El siguiente documento supone que el archivo de configuración se encuentra /etc/docker/daemon.json
.
Crear o editar el archivo de configuración del demonio del estibador, el
/etc/docker/daemon.json
archivo se utiliza para controlar la configuración del demonio del estibador de archivo predeterminado.$ sudo nano /etc/docker/daemon.json
Añadir una o más direcciones IP como el valor de
dns
la clave. Si el archivo ha sido contenido, sólo tiene que añadir o editar ladns
fila.{ "dns": ["8.8.8.8", "8.8.4.4"] }
Si el servidor DNS interno no puede resolver las direcciones IP públicas, incluyendo al menos uno que puede resolver el servidor de IP, por lo que se puede conectar al Hub del estibador, mientras que el recipiente de modo que usted puede resolver nombres de dominio de Internet.
Guardar y cerrar el archivo.
Acoplable reiniciar el demonio.
$ sudo service docker restart
Al tratar de conseguir un espejo para verificar acoplable puede resolver la dirección IP externa:
$ docker pull hello-world
Si es necesario, verifique acoplable contenedor de ping puede resolver nombres de host internos.
$ docker run --rm -it alpine ping -c4 <my_internal_host> PING google.com (192.168.1.2): 56 data bytes 64 bytes from 192.168.1.2: seq=0 ttl=41 time=7.597 ms 64 bytes from 192.168.1.2: seq=1 ttl=41 time=7.635 ms 64 bytes from 192.168.1.2: seq=2 ttl=41 time=7.660 ms 64 bytes from 192.168.1.2: seq=3 ttl=41 time=7.677 ms
Desactivar DNSMASQ
的 Ubuntu
Si no desea cambiar el demonio acoplable está configurado para utilizar una dirección IP específica, desactivar NetworkManager usando las instrucciones siguientes dnsmasq
.
Editar el
/etc/NetworkManager/NetworkManager.conf
archivo.Por
dns=dnsmasq
adición en primer lugar una línea de#
caracteres a comentar la línea.# dns=dnsmasq
Guardar y cerrar el archivo.
Reinicie el NetworkManager y estibador. Tal vez, puede reiniciar el sistema.
$ sudo restart network-manager $ sudo restart docker
RHEL, CentOS o Fedora
En RHEL, CentOS o Fedora discapacitados dnsmasq
:
Desactivar
dnsmasq
Servicio:$ sudo service dnsmasq stop $ sudo systemctl disable dnsmasq
Uso de Red Hat documentación a los servidores DNS de configuración manualmente.
API permite el acceso remoto a través del cortafuegos
Si ejecuta una carrera de servidor de seguridad en el mismo host acoplable, con la esperanza de otro control remoto de acceso al host del estibador de API y habilitar el acceso remoto, es necesario configurar el firewall para permitir conexiones entrantes en el puerto del estibador, si está habilitado el cifrado TLS transmisión, el valor predeterminado es 2376
de otro modo 2375
.
Dos daemon servidor de seguridad común es UFW (no complicada Firewall) (normalmente usado para sistemas Ubuntu) y firewalld (normalmente utilizado para sistemas basados en RPM). Por favor consulte apropiado para su sistema operativo y la documentación del cortafuegos, pero la siguiente información puede ayudarle a empezar. Estas opciones son bastante floja, puede que desee utilizar una configuración diferente a aún más el sistema de bloqueo.
UFW : establece la configuración
DEFAULT_FORWARD_POLICY="ACCEPT"
.firewalld : añadir una regla similar al siguiente en su política (una solicitud de entrada y uno para las solicitudes de salida). Asegúrese de que el nombre de la interfaz y el nombre de la cadena correctamente.
<direct> [ <rule ipv="ipv6" table="filter" chain="FORWARD_direct" priority="0"> -i zt0 -j ACCEPT </rule> ] [ <rule ipv="ipv6" table="filter" chain="FORWARD_direct" priority="0"> -o zt0 -j ACCEPT </rule> ] </direct>
Your kernel does not support cgroup swap limit capabilities
En Ubuntu o Debian host, utilice una imagen, es posible que aparezca un mensaje similar al siguiente.
WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
Esta advertencia no se produce en el sistema basado en RPM, que permiten a estas características por defecto.
Si no necesita estas características, puede pasar por alto la advertencia. Puede activar estas funciones en Ubuntu o Debian seguir las siguientes instrucciones. Incluso acoplable no se está ejecutando, también pueden causar la memoria y de intercambio de facturación memoria total disponible sobrecarga es aproximadamente 1%, y el rendimiento global se reducirá en un 10%.
Tener
sudo
como los privilegios del usuario, ingrese Ubuntu o Debian anfitriones.Editar el
/etc/default/grub
archivo. Editar o añadirGRUB_CMDLINE_LINUX
la línea de añadir las siguientes dos pares de valores clave:GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
Guardar y cerrar el archivo.
Actualización de GRUB.
$ sudo update-grub
Si su sintaxis del archivo de configuración de GRUB es incorrecta, se producirá un error. En este caso, repita los pasos 2 y 3.
Los cambios tendrán efecto después de que el sistema se reinicia.
El siguiente paso
- Ver introductorias módulos de capacitación para aprender cómo construir una imagen y ejecutarlo como un contenedor de la aplicación.
- Revisar el uso del desarrollo del estibador tema para saber cómo utilizar la ventana acoplable para construir nuevas aplicaciones.
[Traducido del Pasos posteriores a la instalación para Linux ]