Apa Itu Docker? Cara Pengguannya

PerintahFungsi
docker pull nginx= Download image Nginx
docker images= Lihat daftar image
docker run -d -p 8080:80 nginx= Jalankan container Nginx
docker ps= Lihat container yang sedang berjalan
docker stop <container_id>= Hentikan container
docker rm <container_id>= Hapus container
docker rmi <image_id>= Hapus image
docker version = untuk cek versi docker
docker rename <nama lama> <nama baru>

Menjalankan Docker Test
docker run -d -p 8080:80 --name nginx-test -v "d:\docker:/usr/share/nginx/html" nginx

Menjalankan Docker dengan Laravel yang sudah ada
1. Buat docker-compose.yml di dalam laravel
version: '3.8'

services:
  # PHP (Laravel)
  app:
    build:
      context: .
      dockerfile: ./php/DockerFile
    container_name: laravel-app
    volumes:
      - ./:/var/www/html
    networks:
      - laravel
    ports:
      - "9000:9000"

  # Nginx
  web:
    image: nginx:latest
    container_name: nginx-laravel
    ports:
      - "8080:80"
    volumes:
      - ./:/var/www/html
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - app
    networks:
      - laravel

  # MySQL
  db:
    image: mysql:8.0
    container_name: mysql-laravel
    restart: always
    environment:
      MYSQL_DATABASE: db_presensimaster
      MYSQL_ROOT_PASSWORD: root
    ports:
      - "3306:3306"
    volumes:
      - ./mysql:/var/lib/mysql
    networks:
      - laravel

networks:
  laravel:
    driver: bridge



2. Buat folder php dan file DockerFile
FROM php:8.2-fpm

# Install system dependencies
RUN apt-get update && apt-get install -y \
    build-essential \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libonig-dev \
    libxml2-dev \
    libzip-dev \
    zip unzip git curl

# Install PHP extensions
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip

# Install Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

WORKDIR /var/www/html


3. Buat folder nginx -> default.conf
server {
    listen 80;
    index index.php index.html;
    server_name localhost;
    root /var/www/html/public;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}


4. Lalu jalankan Docker Compose
docker compose up -d --build

Sekarang waktu nya masuk ke container untuk menjalankan artisan command

docker exec -it laravel-app bash
composer install
php artisan migrate

masuk ke mysql
docker exec -it mysql-laravel bash

cek konkesi db
mysql -h db -u root -p

SHOW DATABASES; = untuk cek isi mysql


















Share on Google Plus

About Arwan Triwidianto

    Blogger Comment
    Facebook Comment

0 komentar:

Posting Komentar