Docker Apache Virtual Host
DockerDocker Apache Virtual Host Yapımı
Yazılım mühendisliği, yazılım dökümanlar. Html5 game, Ios, Android ,Php, Python, Javascript, Css, Mysql, Sql, Node js ' and Software documents .
Docker Apache Virtual Host Yapımı
Docker HealthCheck
> docker run -d -p 80:80 --name c_nginx --health-cmd "curl -f http://localhost || exit 1" --health-interval 5s --health-timeout 3s --health-retries 3 --health-start-period 6s nginx
daha sonra docker ps yaparak çalışan container'larımızı listelediğimizde status kısmında çalışma zamanı ve healthcheck durumu yazdığını görürüz "STATUS Up 8 seconds (healthy)"
> docker ps
Dockerfile ile kullanımı
dockerfile dosya içeriği:
FROM nginx:latest
RUN apt-get update &&apt-get install -y curl
HEALTHCHECK --interval=3s --timeout=3s CMD curl -f http://localhost || exit 1
EXPOSE 80docker file bulundugu dosya klasörüne giderek cmd aşağıdaki kodu çalıştırarak image oluşturuyoruz ve daha sonra run komutu ile ayağa kaldırıyoruz
> docker build -t nginx:1 .
> docker run -d -p 80:80 --name c_nginx nginx:1
docker-compose.yml ile kullanımı
version: '3.1'
services:
s_nginx:
container_name: c_nginx
image: nginx:latest
ports:
- 80:80
healthcheck:
test: ["CMD","curl","-f","http://localhost"]
interval: 5s
timeout: 10s
retries: 3
start_period: 10s
container'ımızı ayağa kaldırmak için docker-compose.yml dosyamızınız bulunduğu klasörü cmd açarak aşağıdaki kodu çalıştırıyoruz.
> docker-compose up -d
Docker Portainer
Docker Swarm, Stack
docker swarm enable etmek için aşağıdaki komutu kullanıyoruz. ip döner.
> docker swarm init
master nodu belirmek için aşağıdaki kodu kulanıyoruz.
-- listen-addr node gelen istekleri dinlemek için
> docker swarm init --advertise-addr ip_adresi -- listen-addr ip_adresi
yeni bir master node belirtmek istediğimizde container'a bağlanıp aşağıdaki kodu çalıştırıyoruz.
> docker swarm join-token manager
yeni bir bir worker eklemek istiyorsak aşaıdaki kodu çalıştırıcağız.
> docker swarm join-token worker
swarm altında docker containerları görmek için artık service komutuyla ayağa kaldıracağız.
replicas 1 : birden fazla kurmasını istiyorsak .
> docker service create --name s_nginx --replicas 1 nginx
veya
> docker service create --name s_nginx -p 80:80 --replicas 3 nginx
altındaki çalışan container durumunu gösterir.
> docker service ps s_nginx
eşitlik algoritması oldugu için 2. makine varsa 2. makinede kuracaktır.
>docker service scale s_nginx=2
servisleri kaldırmak için kullanılır.
> docker service rm s_nginx
node ile ilgili bilgilerini görmek için kullanılır
> docker node
worker olan bir node manager olarak güncellemek için aşağıdaki kodu kullanılır.
> docker node promote node_ismi
node durdurup başlatmak ve sonlandırmak istediğimizde kulnacağımız komutlar.
active aktifleştirir
pause durdurur
drain sonlandırır
> docker node update avability pause node_ismi
Docker Stack
Docker stack aslında docker swarm’ın production tarafında daha yönetilebilir bir şekilde işlemesi için ,bir konfigürasyon dosyası üzerinden kurgulandığı ve yönetildiği bir yapıdır. Ya da başka bir tanımlama ile docker compose dosyası ile docker swarmın tek elden yönetilmesini sağlamaktır.
yml dosyasında deploy için parametreler girilmiştir.
yml dosyamızı kaydettikten sonra, dosyamızın bulundugu dizine giderek aşağıdaki komutu çalıştırıyoruz ve stack servislerimiz ayağa kalkıyor.
> docker stack deploy -c docker-compose.yml s_wordpress
docker-compose.yml dosya içeriği:
version: '3.1'
services:
s_wordpress:
image: wordpress
ports:
- 80:80
environment:
WORDPRESS_DB_HOST: s_db:3306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: 12345
WORDPRESS_DB_NAME: wordpress_db
volumes:
- C:\docker_stack_wordpress\wordpress_data:/var/www/html
restart: always
deploy:
replicas: 1 # 2 ikitane replicae oluştur
restart_policy: #yeniden başlatma kuralı
max_attempts: 3 # 3 kere dene max
condition: on-failure # hata oldugunda dene
placement:
constraints:
- node.role == manager
s_db:
image: mysql:5.7
environment:
MYSQL_DATABASE: wordpress_db
MYSQL_USER: root
MYSQL_PASSWORD: 12345
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- C:\docker_stack_wordpress\mysql_data:/var/lib/mysql
ports:
- 3307:3306
deploy:
replicas: 1
restart_policy: #yeniden başlatma kuralı
condition: on-failure # hata oldugunda dene
placement:
constraints:
- node.role == manager
Docker Secret