В этой статье описаны команды и docker compose файлы для продакшена
docker ps
- вывод списка активных контейнеров
docker ps -a
- вывод списка всех контейнеров на хосте (даже неактивных)
docker rm ###
- удаление контейнера (неактивного)
docker stop ###
- остановка активного контейнера (soft stop)
docker kill ###
- убийство активного контейнера (hard stop)
docker build -t tag:v1 .
- билд образа docker из Dockerfile
, который находится в текущей директории. Билд с именем образа "tag" и версией "v1"
docker compose up
- запустить docker-compose.yml файл с активной консолью
docker compose up -d
- запустить docker-compose.yml файл без консоли
docker compose up -d --force-recreate
- запустить docker-compose.yml файл без консоли, предварительно перебилдив образ с измененными параметрами
docker logs ###
- логи контейнера
docker exec -it ### bash
- войти в bash терминал контейнера
docker network ls
- вывод имеющихся в системе docker сетей
docker inspect ###
- вывод подробной информации о контейнере
docker network inspect ###
- вывод подробной информации о docker сети
docker image ls
- вывод списка образов
docker image rm
- удаление изображения
docker system prune -a
- удаляет все остановленные контейнеры, изображения, volume, сети.
docker image inspect ###
- вывод подробной информации о образе
/var/lib/docker/volumes/
- по этому пути в системе хранятся docker volumes
/etc/docker/daemon.json
- файл в котором применяются insecure регистры
Примеры запуска одиночных приложений:
docker run -it --name nettool1 --ip 192.168.1.125 --net mainnet nicolaka/netshoot bash
docker run --name nginxserv1 -d -p 80:80 --net mymacvl -v nginx:/usr/share/nginx/html:ro nginx
docker network create -d macvlan --subnet 192.168.1.0/24 --gateway 192.168.1.1 --ip-range 192.168.1.124/32 -o parent=enx00e04c3643f8 mainnet
docker network create --subnet 172.20.0.0/24 --gateway 172.20.0.1 nginxapp
services:
nginx:
image: jc21/nginx-proxy-manager:latest
container_name: nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "81:81"
volumes:
- nginx-data:/data
- nginx-letsencrypt:/etc/letsencrypt
volumes:
nginx-data:
external: false
nginx-letsencrypt:
external: false
services:
postgres:
image: postgres:15-alpine
container_name: postgres
environment:
POSTGRES_DB: "postgres"
POSTGRES_PASSWORD: "password"
POSTGRES_USER: "postgres"
restart: unless-stopped
ports:
- "5432:5432"
volumes:
- postgres:/var/lib/postgresql/data
volumes:
postgres:
external: false
services:
mysql-server:
container_name: mysql-server
image: mysql:8.0-oracle
networks:
zabbix-net:
ipv4_address: 172.30.0.2
volumes:
- ./data:/var/lib/mysql:rw
environment:
MYSQL_DATABASE: "zabbix"
MYSQL_USER "zabbix"
MYSQL_PASSWORD "PASSWORD"
MYSQL_ROOT_PASSWORD: "PASSWORD"
restart: unless-stopped
command: --character-set-server=utf8 --collation-server=utf8_bin --default-authentication-plugin=mysql_native_password
zabbix-java-gateway:
container_name: zabbix-java-gateway
image: zabbix/zabbix-java-gateway:alpine-7.0-latest
networks:
zabbix-net:
ipv4_address: 172.30.0.3
restart: unless-stopped
zabbix-server-mysql:
container_name: zabbix-server-mysql
image: zabbix/zabbix-server-mysql:alpine-7.0-latest
networks:
zabbix-net:
ipv4_address: 172.30.0.4
environment:
DB_SERVER_HOST: "mysql-server"
MYSQL_DATABASE "zabbix"
MYSQL_USER "zabbix"
MYSQL_PASSWORD: "PASSWORD"
MYSQL_ROOT_PASSWORD: "PASSWORD"
ZBX_JAVAGATEWAY=zabbix-java-gateway
ports:
- "10051:10051"
restart: unless-stopped
zabbix-web-nginx-mysql:
container_name: zabbix-web-nginx-mysql
image: zabbix/zabbix-web-nginx-mysql:alpine-7.0-latest
networks:
zabbix-net:
ipv4_address: 172.30.0.5
environment:
ZBX_SERVER_HOST: "zabbix-server-mysql"
DB_SERVER_HOST: "mysql-server"
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "PASSWORD"
MYSQL_ROOT_PASSWORD: "PASSWORD"
ZBX_JAVAGATEWAY=zabbix-java-gateway
ports:
- "80:8080"
restart: unless-stopped
networks:
zabbix-net:
ipam:
driver: default
config:
- subnet: 172.30.0.0/24
#Last edit: 10.10.24
services:
zabbix-snmptraps:
container_name: zabbix-snmptraps
image: zabbix/zabbix-snmptraps:alpine-7.0-latest
networks:
zabbix-net:
ipv4_address: 172.30.0.2
volumes:
- zabbix-snmptraps:/var/lib/zabbix/snmptraps
- zabbix-mibs:/usr/share/snmp/mibs
ports:
- "162:1162"
restart: unless-stopped
zabbix-server-pgsql:
container_name: zabbix-server-pgsql
image: zabbix/zabbix-server-pgsql:alpine-7.0-latest
networks:
zabbix-net:
ipv4_address: 172.30.0.3
environment:
- DB_SERVER_HOST=10.10.10.20
- POSTGRES_USER=zabbix
- POSTGRES_PASSWORD=password
- POSTGRES_DB=zabbix
- ZBX_ENABLE_SNMP_TRAPS=true
volumes:
- zabbix-snmptraps:/var/lib/zabbix/snmptraps
- zabbix-mibs:/usr/share/snmp/mibs
ports:
- "10051:10051"
restart: unless-stopped
zabbix-web-nginx-pgsql:
container_name: zabbix-web-nginx-pgsql
image: zabbix/zabbix-web-nginx-pgsql:alpine-7.0-latest
networks:
zabbix-net:
ipv4_address: 172.30.0.4
environment:
- ZBX_SERVER_HOST=172.30.0.3
- DB_SERVER_HOST=10.10.10.20
- POSTGRES_USER=zabbix
- POSTGRES_PASSWORD=password
- POSTGRES_DB=zabbix
- ZBX_SERVER_NAME=zabbix.taxonein.ru
volumes:
- zabbix-nginx:/etc/ssl/nginx
ports:
- "80:8080"
- "443:8443"
restart: unless-stopped
volumes:
zabbix-snmptraps:
external: false
zabbix-mibs:
external: false
zabbix-nginx:
external: false
networks:
zabbix-net:
ipam:
driver: default
config:
- subnet: 172.30.0.0/24
services:
nexus:
image: sonatype/nexus3:3.70.3
restart: unless-stopped
ports:
- "80:8081"
- "1001:1001"
- "443:443"
volumes:
- nexus:/nexus-data
volumes:
nexus:
external: false
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
web:
image: nginx
volumes:
- ./templates:/etc/nginx/templates
ports:
- "8080:80"
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: gitlab
restart: unless-stopped
hostname: 'gitlab.taxonein.ru'
volumes:
- gitlab-config:/etc/gitlab
- gitlab-logs:/var/log/gitlab
- gitlab-data:/var/opt/gitlab
shm_size: 256m
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.taxonein.ru:80'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
networks:
gitlab-net:
ipv4_address: 172.30.0.2
ports:
- "80:80"
- "443:443"
- "2222:22"
deploy:
resources:
limits:
cpus: '3'
memory: 5GB
reservations:
cpus: '2'
memory: 3GB
volumes:
gitlab-config:
external: false
gitlab-logs:
external: false
gitlab-data:
external: false
networks:
gitlab-net:
ipam:
driver: default
config:
- subnet: 172.30.0.0/24
services:
wikijs:
image: ghcr.io/requarks/wiki:2
container_name: wikijs
environment:
DB_TYPE: "postgres"
DB_HOST: "10.10.10.20"
DB_PORT: "5432"
DB_USER: "wikijs"
DB_PASS: "PASSWORD"
DB_NAME: "wikijs"
restart: unless-stopped
ports:
- "8081:3000"