Postingan ini tentang Traefik untuk Docker Containers.
Pengenalan Konfigurasi
Bagaimana Keajaiban Terjadi
Traefik untuk Kontainer Docker
Jika Anda belum menginstal buruh pelabuhan, Anda dapat menemukan instruksi untuk Ubuntu atau Debian. Panduan ini menggunakan docker-compose untuk menjalankan Traefik, oleh karena itu perlu juga menginstal docker-compose. Dua panduan tertaut akan membantu Anda menyiapkan docker-compose di host Anda sendiri.
Mari kita mulai dengan menyiapkan Traefik.
Pertama, buat beberapa file dan direktori folder untuk container kita:
mkdir -p /opt/containers/traefik
mkdir /opt/containers/traefik/data
touch /opt/containers/traefik/data/traefik.yml
touch /opt/containers/traefik/data/acme.json
chmod 600 /opt/containers/traefik/data/acme.json
Buat sandi aman
Buat file konfigurasi dan atur kata sandi terenkripsi untuk mengakses dasbor traefik. Anda dapat menggunakan utilitas htpasswd untuk membuat kata sandi terenkripsi. Untuk menggunakan utilitas htpasswd, instal utilitas dengan perintah berikut
$ sudo apt-get install -y apache2-utils
Kemudian jalankan perintah berikut untuk menghasilkan kata sandi yang aman
$sudo htpasswd -nb unixcop unixcop@123
unixcop:$$apr1$$zUb/YuK2$$57psQ0U71DlfdHPr0yoHe/
Saya telah menggunakan "unixcop@123" untuk mengenkripsi. Anda dapat memiliki asumsi Anda sendiri. Pengguna diambil sebagai "unixcop" Anda dapat menggantinya dengan nama pengguna Anda sendiri.
Salin output yang dihasilkan secara otomatis dan simpan di suatu tempat karena kita perlu menggunakan kata sandi terenkripsi ini di file konfigurasi Traefik untuk menyiapkan otentikasi dasar untuk dasbor Traefik
traefik.yml
Selanjutnya kita buka file konfigurasi traefik yang baru kita buat dengan editor pilihan Anda.
vim /opt/containers/traefik/data/traefik.yml
api:
dashboard: true
entryPoints:
http:
address: ":80"
https:
address: ":443"
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
certificatesResolvers:
http:
acme:
email: [email protected] # CHANGE HERE
storage: acme.json
httpChallenge:
entryPoint: http
Buat docker-compose.yml
file tempat Anda akan mendefinisikan reverse-proxy
layanan yang menggunakan gambar Traefik resmi:
docker-compose.yml
version: '3'
services:
traefik:
image: traefik:latest
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- proxy
ports:
- 80:80
- 443:443
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/traefik.yml:/traefik.yml:ro
- ./data/acme.json:/acme.json
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=http"
- "traefik.http.routers.traefik.rule=Host(`traefik.domain.tld`)"
- "traefik.http.middlewares.traefik-auth.basicauth.users=unixcop:$$apr1$$zUb/YuK2$$57psQ0U71DlfdHPr0yoHe"
- "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
- "traefik.http.routers.traefik-secure.entrypoints=https"
- "traefik.http.routers.traefik-secure.rule=Host(`traefik.domain.tld`)"
- "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
- "traefik.http.routers.traefik-secure.tls=true"
- "traefik.http.routers.traefik-secure.tls.certresolver=http"
- "traefik.http.routers.traefik-secure.service=api@internal"
networks:
proxy:
external: true
Dengan docker-compose.yml kami mendefinisikan wadah buruh pelabuhan Traefik dengan semua pengaturan dan file konfigurasi. Untuk mengaktifkan dan menjalankan Traefik, Anda hanya perlu menyesuaikan beberapa pengaturan:
- ganti keduanya
traefik.domain.tld
dengan nama domain Anda sendiri. Domain ini harus berupa subdomain seperti traefik.ae3.ch misalnya. Nanti Anda bisa mengakses Traefik Dasboard dengan (sub)domain ini.
Buat Jaringan Docker untuk Traefik
Sebaiknya siapkan jaringan buruh pelabuhan terpisah yang digunakan oleh Traefik dan semua wadah buruh pelabuhan lainnya yang ingin Anda sediakan oleh Traefik.
Untuk membuat jaringan buruh pelabuhan ini, yang perlu Anda lakukan hanyalah menempelkan perintah berikut ke dalam CLI Anda:
docker network create proxy
Jalankan Traefik
docker-compose up -d
Setelah beberapa detik, Anda dapat memeriksa dan mengakses Dasbor Traefik di Domain khusus yang Anda masukkan di docker-compose.yml