lightweight - remove docker centos
Establecer Docker_Opts en centos (12)
1 、 edite /usr/lib/systemd/system/docker.service para agregar dos parámetros en la sección de servicio:
# vim /usr/lib/systemd/system/docker.service
[Servicio]
ExecStart =
ExecStart = / usr / bin / dockerd -H tcp: //0.0.0.0: 2375 -H unix: //var/run/docker.sock
2, vuelva a cargar la configuración, y luego reinicie la ventana acoplable。
# systemctl daemon-reload
# systemctl restart docker
3 、 para verificar el éxito, ver si la respuesta es la siguiente。
# ps -ef|grep docker
raíz 26208 1 0 23:51? 00:00:00 / usr / bin / dockerd -H tcp: //0.0.0.0: 2375 -H unix: //var/run/docker.sock
¿Referencia de Expose el Docker Remote API en Centos 7?
Necesito configurar la ventana acoplable para escuchar tcp: //0.0.0.0/4243 en mi máquina host que ejecuta Amazon Linux (centos). Toda la documentación que he visto me ha dicho que ejecute el siguiente comando
echo DOCKER_OPTS="-H=tcp://127.0.0.1:4243" >> /etc/default/docker
Lo que escribirá las opciones de docker correctas en / etc / default / docker. He hecho esto, pero cuando reinicio la ventana acoplable no escucha 127.0.0.1
Puedo hacer que la ventana acoplable funcione correctamente escribiendo
sudo /usr/bin/docker -H tcp://0.0.0.0:4243 -d &
Eso funciona, pero quiero que la opción predeterminada esté escuchando en tcp: //0.0.0.0: 4243 sin tener que especificarlo cada vez.
Parece que la ventana acoplable está ignorando completamente mi archivo / etc / default / docker, por lo que la configuración se está ignorando. También intenté escribir el archivo en /etc/default/docker.io y / etc / default / docker-io (realmente no esperaba que ocurriera mucho)
Necesito poder iniciar docker con solo
service docker start
o causará problemas en mi libro de jugadas de implementación actual.
¿Alguna idea sobre lo que puedo hacer para configurar DOCKER_OPTS y no tener que hacerlo cada vez que reinicio la ventana acoplable?
Basado en https://docs.docker.com/engine/admin/configuring/
sudo mkdir /etc/systemd/system/docker.service.d
sudo vi /etc/systemd/system/docker.service.d/docker.conf
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// -D -H tcp://127.0.0.1:4243
sudo systemctl daemon-reload
sudo systemctl restart docker
Con Docker 1.7.1 en CentOS 7, ninguna modificación de /usr/lib/systemd/system/docker.service
o /etc/sysconfig/docker
funcionó para mí. Parece que en systemd configura el socket, así que para cambiar el grupo tienes que editar SocketGroup en /usr/lib/systemd/system/docker.socket
[Unit]
Description=Docker Socket for the API
PartOf=docker.service
[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=jenkins
[Install]
WantedBy=sockets.target
Creo que las cosas han cambiado ahora, this respuesta de Brian Ogden me funcionó antes pero no funcionó en mi entorno hoy, probablemente con las versiones actualizadas de la ventana acoplable, el kernel y el sistema operativo.
CentOS 7.4.1708 (on AWS)
Docker 17.03.2-ce
API 1.27
Esto es lo que funcionó después de algunos golpes y pruebas. No pude encontrarlo documentado en ninguna parte.
En el archivo /etc/systemd/system/docker.service.d/execstart.conf
, reemplace el último ExecStart
(hay dos) con el siguiente
ExecStart=/usr/bin/dockerd --graph=/var/lib/docker --storage-driver=overlay -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock
Ahora, mis archivos se ven así
# cat /etc/systemd/system/docker.service.d/execstart.conf
[Service]
Restart=always
StartLimitInterval=0
RestartSec=15
ExecStartPre=-/sbin/ip link del docker0
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/var/lib/docker --storage-driver=overlay -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock
#
Una vez, el archivo anterior se cambia solo ejecutando el siguiente comando para activar los cambios.
# systemctl daemon-reload && systemctl stop docker && rm -f /var/run/docker.sock && systemctl start docker
Para verificar si todo funciona bien, puede ejecutar cualquiera (o todos) de los siguientes comandos
# systemctl status docker.service | grep tcp
├─21812 /usr/bin/dockerd --graph=/var/lib/docker --storage-driver=overlay -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock
#
# netstat -an | grep 4243
tcp6 0 0 :::4243 :::* LISTEN
#
# ps aux | grep [4]243
root 21812 1.0 0.8 1017512 67876 ? Ssl 15:11 0:06 /usr/bin/dockerd --graph=/var/lib/docker --storage-driver=overlay -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock
#
# docker -H :4243 info
Editar /etc/docker/daemon.json
parece ser la nueva forma compatible.
En RHEL7, en lugar de modificar su archivo de unidad de servicio docker.service, también puede editar su archivo / etc / sysconfig / docker:
# /etc/sysconfig/docker
# Modify these options if you want to change the way the docker daemon runs
OPTIONS=--selinux-enabled -H unix:///var/run/docker.sock -H tcp://0.0.0.0:4243
y luego reinicie su servicio docker.
Para mí, esto es más confiable que modificar el script de servicio.
Estoy trabajando en centos 7.
Solo quiero agregar el registro inseguro en el archivo de configuración de docker y luego cambié "DOCKER_OPTS = - insegure-registry = ...." en / etc / sysconfig / docker mientras no funcionaba.
Mientras vi un INSECURE_REGISTRY en la configuración, cambié esta variable y ¡FUNCIONA!
¡Así que supongo que DOCKER_OPTS no funciona aquí!
¡Pero funcionó en mi unbuntu 14!
¡Es realmente frustrante cuando se usa la ventana acoplable!
Me funcionó cuando seguí cómo se muestra en las publicaciones anteriores con archivos de reemplazo en: /etc/systemd/system/docker.service.d
Necesitaba cambiar la interfaz de puente predeterminada docker0 para usar mi propia interfaz de puente br0 y poner el siguiente contenido en ese archivo resolvió mi problema:
CentOS 7.2 y docker 1.10.3
/usr/lib/systemd/system/docker.service.d/docker.conf
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon --bridge=br0 -H fd://
y, por supuesto, lo siguiente debe realizarse después de:
sudo systemctl daemon-reload
sudo systemctl restart docker
ip link del docker0
No puedo creer cuántas respuestas hay para esto. Así que aquí hay otro para:
- CentOS 7.3
- Versión de Docker = 17.03.1-ce, Versión de API = 1.27
Esta respuesta se basa en una combinación increíble de esta answer y esta y esta.
- sudo vim /usr/lib/systemd/system/docker.service
- inserte "-H tcp: //0.0.0.0: 4243 -H unix: ///var/run/docker.sock"
- sudo systemctl daemon-reload // actualiza los cambios de archivo anteriores
- sudo systemctl reiniciar ventana acoplable
- netstat -l | grep 4243 // verificar que el puerto esta abierto
- conéctese a su host docker desde algún lugar, como Jenkins Docker Plugin, es decir, tcp: // [server_ip]: 4243
Para CentOS 7 (RHEL 7):
Encuentra el archivo de unidad systemer docker.service. El mío se encuentra en: /usr/lib/systemd/system/docker.service
En este archivo, edite la línea en la sección [Servicio] que comienza con ExecStart=
. Agregue " -H tcp://0.0.0.0:4243
" en la línea. (note que no hay "=" entre la -H y la dirección IP como se muestra en la línea DOCKER_OPTS de ejemplo).
En mi sistema, todo el contenido de docker.service
se ve así:
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target docker.socket
Requires=docker.socket
[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/docker
ExecStart=/usr/bin/docker -d -H tcp://127.0.0.1:4243 -H fd:// $OPTIONS
LimitNOFILE=1048576
LimitNPROC=1048576
[Install]
Also=docker.socket
(Solo necesito que Docker escuche en el loopback, en lugar de todas las direcciones IP).
Después de realizar esta edición en el archivo de la unidad systemd y reiniciar el servicio Docker a través de la systemctl restart docker
, veo el siguiente proceso:
root 8574 0.0 0.2 321708 10564 ? Ssl 00:42 0:00 /usr/bin/docker -d -H tcp://127.0.0.1:4243 -H fd:// --selinux-enabled
Como puede ver, ahora escucha en la dirección TCP configurada, y persistirá durante los reinicios y la parada / inicio del servicio.
Pienso en CentOS, puede intentar configurar las opciones como se muestra a continuación en el archivo / etc / sysconfig / docker
other_args="-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock"
Luego reinicie la ventana acoplable e intente verificar si el puerto se está abriendo usando
netstat -plt | grep 4243
Esto debería enumerar si escucha