Herramientas de usuario

Herramientas del sitio


wiki2:docker-examples

¡Esta es una revisión vieja del documento!


Docker Notes

docker-compose examples

version: '2'
services:
  mysql:
    image: mysql
    restart: always
    ports:
    - "3306:3306"
    volumes:
    - /home/alfred/tmp/data:/data/db
    environment:
    - MYSQL_ROOT_PASSWORD=the_pass
  php:
    image: my-php
    restart: always
    ports:
    - "8000:80"
    volumes:
    - /home/alfred/php/:/var/www/html
    links:
    - mysql
version: '2'
services:
  mysql:
    image: mysql
    restart: always
    ports:
    - "3306:3306"
    volumes:
    - /home/alfred/tmp/data:/data/db
    environment:
    - MYSQL_ROOT_PASSWORD=the_pass
    networks:
    - mynetwork2
  php:
    image: my-php
    restart: always
    ports:
    - "8000:80"
    volumes:
    - /home/alfred/php/:/var/www/html
    networks:
    - mynetwork2
networks:
  mynetwork2:
    driver: bridge
version: '2'
services:
  mysql:
    image: mysql
    restart: always
    ports:
    - "3306:3306"
    volumes:
    - /home/alfred/tmp/data:/data/db
    environment:
    - MYSQL_ROOT_PASSWORD=the_pass
    networks:
      mynetwork2:
        ipv4_address: 10.5.0.5
  php:
    image: my-php
    restart: always
    ports:
    - "8000:80"
    volumes:
    - /home/alfred/php/:/var/www/html
    networks:
      mynetwork2:
        ipv4_address: 10.5.0.6
networks:
  mynetwork2:
    driver: bridge
    ipam:
     config:
       - subnet: 10.5.0.0/16
         gateway: 10.5.0.1

Linux Alpine use

One of the most used Linux distro with Docker is Alpine. There are several reasons:

  • It is smaller (30x less than Debian. Debian 123mb, Ubuntu 118mb, Alpine 4mb)
  • So it is fast to download.
  • So, not having so many libraries already installed, secure (exploit proof).

Alpine package names are here.

Alpine uses apk instead of apt-get. Comparison with apt-get:

apt-get update apk update
apt-get install <packages> apk add <packages>

Default environment variables in docker-compose

https://docs.docker.com/compose/env-file/

Compose supports declaring default environment variables in an environment file named .env placed in the folder where the docker-compose command is executed.

Compose expects each line in an env file to be in VAR=VAL format. You can comment lines with #.

Values present in the environment at runtime always override those defined inside the .env file.

Trabajar con proxy

Definir un proxy para las descargas

Para ello debemos editar el fichero /etc/systemd/system/docker.service.d/<cualquier-nombre>.conf. Con el contenido:

[Service]
Environment="HTTP_PROXY=http://proxy.ejemplo:666/"

Luego para reiniciar docker y que pille el proxy:

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

Definir un proxy en el build

Por ejemplo, si vamos a usar apt con quien podemos definir una variable de entorno http_proxy (para ello se usa el argumento build-arg) haremos:

docker build --build-arg http_proxy=http://<ip>:<puerto> .
$ docker volume create portainer_data
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
wiki2/docker-examples.1545497726.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)