⌘竹内電設.com About

竹内電設.com / POST

Debian12でDockerを使えるようにする

{
"title": "Debian12でDockerを使えるようにする",
"date": "2023-08-08",
"content": {
},
}

Debian12が動くVPSを借りたのでDockerを使えるようにした

What's Debian12(Bookworm)

2023年6月にリリースされたDebianの最新版

Debian -- The Universal Operating System

設定メモ

とりあえずやっておくこと

# apt update
# apt dist-upgrade
# hostnamectl set-hostname dockerhost
# apt install ufw
# ufw default DENY
# ufw enable

外出ししている環境はデフォルトで受信拒否しておく
ディストリビューションのデフォルトでは受信拒否になっているものでも、VPSのOSイメージではデフォルトでポートが開けられていることがあるみたい
ufw enableする前にVPSへSSHで接続している環境だとufw allow 'SSH'しておかないと詰む可能性があるので注意
またufw allow 'SSH'を使うよりufw limit 'SSH'
慣れないうちは全閉じしておいてVPSのWebコンソールのShellを使うほうが安心

Dockerをインストールする

# apt install -y ca-certificates curl gnupg lsb-release
# mkdir -p /etc/apt/keyrings
# curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
# apt update
# apt install -y docker-ce docker-ce-cli containerd.io docker-compose docker-compose-plugin

必要に応じてPortainerを動かす

What's Portainer

Portainerを使うとDockerコンテナがGUI管理できて便利!!

Portainer: Docker and Kubernetes Management Platform

Portainerのためのdocker-compose.yamlを書く

# mkdir -p /docker/portainer
# cd /docker/portainer
# nano docker-compose.yaml
# nano /etc/systemd/system/portainer.service 
/docker/portainer/docker-compose.yaml
version: "3"

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "portainer_data:/data"

volumes:
  portainer_data:
/etc/systemd/system/portainer.service
[Unit]
Description=Portainer Container
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/local/bin/docker-compose -f /docker/portainer/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f /docker/portainer/docker-compose.yml down

[Install]
WantedBy=multi-user.target

Portainerを動かす

# systemctl enable portainer.service
# systemctl start portainer.service