https://intranet.scivalve.com/blog.php?u=3&b=1953
https://docs.docker.com/desktop/install/debian/1. ติดตั้ง Debian12
2. เตรียมติดตั้ง Docker
- for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
- sudo apt-get update
- sudo apt-get install ca-certificates curl
- sudo install -m 0755 -d /etc/apt/keyrings
- sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
- sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources: bookworm คือ VERSION_CODENAME ของ OS แต่ละรุ่น
- echo \
- "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
- $(. /etc/os-release && echo "bookworm") stable" | \
- sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- sudo apt-get update
- sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- docker run hello-world
- docker version
3. สร้าง file
- mkdir php
- cd php
- nano docker-compose.yml
PHP+DB+phpmyadmin เพิ่มข้อมูล
version: "3.8"
services:
php-apache-environment:
container_name: php-apache
build:
context: ./
dockerfile: Dockerfile
depends_on:
- db
volumes:
- ./:/var/www/html/
ports:
- 8001:80
db:
container_name: db
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: MYSQL_ROOT_PASSWORD
MYSQL_DATABASE: MYSQL_DATABASE
MYSQL_USER: MYSQL_USER
MYSQL_PASSWORD: MYSQL_PASSWORD
ports:
- "8002:3306"
phpmyadmin:
container_name: phpmyadmin
image: phpmyadmin/phpmyadmin
ports:
- "8003:80"
restart: always
environment:
PMA_HOST: db
depends_on:
- db
ในไฟล์ docker-compose.yml เป็นตัวตั้งค่านำไปใช้ใน โปรแกรม เช่น
database name คือ db
User Password อยู่ที่ environment
ports ต่าง ๆ สามารถเปลี่ยนได้ เช่น 8001 คือ web apache, 8003 คือ phpmyadmin4. สร้าง Dockerfile ชื่อต้องตรงกันกับในไฟล์ docker-compose.yml version php สามารถเปลี่ยนตามที่เราต้องการ
FROM php:8.2-apache
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
RUN apt-get update && apt-get upgrade -y
คำสั่ง
- sudo docker compose up #เริ่มทำงาน
- sudo docker compose down #หยุดทำงาน
- sudo docker compose pull #update
- sudo docker compose up -d #เริ่มทำงานแบบ daemon
- sudo docker ps #เรียกดูรายการ process ที่กำลังทำงานอยู่
- sudo docker exec -it [ID] bash #เรียกใช้คำสั่งภายใน container
5. เตรียม Folder web
- chown www-data:www-data -r /php
- chmod 775 -r /php
ใน 1 เครื่อง CT ประกอบด้วย 3 Image
ดู ID ของแต่ละเครื่อง
เข้าไปแต่ละเครื่อง bash คือโปรแกรมที่ต้องการใช้งาน
- docker exec -it 1d6f98697fba bash
ตั้งเวลาของแต่ละ Image
6. เปิด root ให้สามารถ เข้า ssh ได้ จะได้เข้าได้หลาย ๆ User หรือจะเพิ่ม User เอาก็ได้
- nano /etc/ssh/sshd_config
เพิ่มไว้ท้ายสุด
PermitRootLogin yes
เพิ่ม User