๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Shell

Docker๋กœ CentOS ์ปจํ…Œ์ด๋„ˆ ๋„์šฐ๊ธฐ

๋ฏธ์ธ์ฃผ 2023. 4. 5. 13:20

1. Ubuntu ์ธ์Šคํ„ด์Šค์— CentOS ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์„ค์น˜

์„ค์น˜ ํ™˜๊ฒฝ

  • NHN Cloud
  • Ubuntu 20.04 LTS
  • Docker 23.0.1
  • CentOS 7.9

 

Workflow

  1. ์„ค์น˜ํ•˜๋ ค๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ์ฒดํฌ ํ›„ ๋‹ค์šด๋กœ๋“œ
  2. Docker ๊ณต์‹ GPG ํ‚ค ์ถ”๊ฐ€
  3. Docker ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋“ฑ๋ก
  4. apt-get ์—…๋ฐ์ดํŠธ
  5. Docker ์„ค์น˜
  6. ๊ทธ๋ฃน์— ์‚ฌ์šฉ์ž ์ถ”๊ฐ€
  7. CentOS 7 ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

 

์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ

#!/usr/bin/env bash

# curl ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ์ฒดํฌ
if ! command -v curl &> /dev/null
then
    sudo apt-get update
    sudo apt-get install -y curl
fi

# apt-transport-https ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ์ฒดํฌ
if ! dpkg -s apt-transport-https &> /dev/null
then
    sudo apt-get update
    sudo apt-get install -y apt-transport-https
fi

# ca-certificates ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ์ฒดํฌ
if ! dpkg -s ca-certificates &> /dev/null
then
    sudo apt-get update
    sudo apt-get install -y ca-certificates
fi

# gnupg-agent ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ์ฒดํฌ
if ! dpkg -s gnupg-agent &> /dev/null
then
    sudo apt-get update
    sudo apt-get install -y gnupg-agent
fi

# software-properties-common ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ์ฒดํฌ
if ! dpkg -s software-properties-common &> /dev/null
then
    sudo apt-get update
    sudo apt-get install -y software-properties-common
fi

# Docker ๊ณต์‹ GPG key ์ด๋ฏธ ์ถ”๊ฐ€๋˜์–ด ์žˆ๋Š”์ง€ ์ฒดํฌ
if ! curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key list | grep Docker &> /dev/null
then
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
fi

# Docker repository ๋“ฑ๋ก
if ! apt-cache policy | grep https://download.docker.com/linux/ubuntu | grep stable &> /dev/null
then
  echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
fi

# ๊ธฐ๋ณธ์ ์ธ ํŒจํ‚ค์ง€๋“ค์ด ์ตœ์‹  ๋ฒ„์ „์ธ์ง€ ํ™•์ธ
sudo apt-get update

# docker-ce ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ์ฒดํฌ
if ! dpkg -s docker-ce &> /dev/null
then
    # Docker ์„ค์น˜
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io
fi

# docker ๊ทธ๋ฃน์— ์‚ฌ์šฉ์ž ์ถ”๊ฐ€
sudo usermod -aG docker $USER

# Centos7 ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰
sudo docker run --privileged -d -p 5432:5432 --name centos centos:7 /sbin/init
  • systemctl ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ privileged๋กœ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰
  • ์ปจํ…Œ์ด๋„ˆ์— postgresql์„ ์„ค์น˜ํ•  ์˜ˆ์ •์ด์–ด์„œ ํฌํŠธ 5432๋กœ ์‹คํ–‰