Skip to content

minzkn/ubuntu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

303 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Ubuntu Docker ์ด๋ฏธ์ง€

ํฌ๊ด„์ ์ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ํฌํ•จ๋œ ๋ฉ€ํ‹ฐ ์•„ํ‚คํ…์ฒ˜ Ubuntu Docker ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.

๊ฐœ์š”

์ด ์ €์žฅ์†Œ๋Š” ๊ฐœ๋ฐœ์— ์ตœ์ ํ™”๋œ ํ”„๋กœ๋•์…˜ ์ค€๋น„ Ubuntu Docker ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๋‹ค์Œ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:

  • ๋ฉ€ํ‹ฐ ์•„ํ‚คํ…์ฒ˜ ์ง€์›: amd64, arm/v7, arm64/v8, ppc64le, riscv64, s390x
  • ๋‹ค์–‘ํ•œ Ubuntu ๋ฒ„์ „: 12.04๋ถ€ํ„ฐ 24.04 LTS๊นŒ์ง€
  • ์™„์ „ํ•œ ๊ฐœ๋ฐœ ํˆด์ฒด์ธ: gcc, clang, cmake, Python ๋“ฑ
  • GUI ๋ฐ์Šคํฌํ†ฑ ํ™˜๊ฒฝ: XRDP๋ฅผ ํ†ตํ•œ ์›๊ฒฉ ์ ‘์† ์ง€์› XFCE4
  • ํ•œ๊ตญ์–ด ์ง€์›: ํฐํŠธ ๋ฐ ์ž…๋ ฅ๊ธฐ ํฌํ•จ
  • ํŠนํ™” ๋ณ€ํ˜•: ์›น ์„œ๋ฒ„, VPN, ๋ ˆ๊ฑฐ์‹œ SDK ์ง€์›

๋น ๋ฅธ ์‹œ์ž‘

Pull ๋ฐ ์‹คํ–‰

# ์ตœ์‹  Ubuntu ๊ฐœ๋ฐœ ํ™˜๊ฒฝ
docker pull hwport/ubuntu:latest
docker run -d -p 2222:22 -p 3389:3389 hwport/ubuntu:latest

# ๋ฐ์Šคํฌํ†ฑ์ด ํฌํ•จ๋œ Ubuntu 24.04
docker pull hwport/ubuntu:24.04
docker run -d -p 2222:22 -p 3389:3389 \
  -e XRDP_DESKTOP=yes \
  hwport/ubuntu:24.04

# Apache ์›น ์„œ๋ฒ„
docker pull hwport/ubuntu:www-latest
docker run -d -p 80:80 -p 443:443 hwport/ubuntu:www-latest

์‚ฌ์šฉ์ž ๊ณ„์ • ์ƒ์„ฑ

๋ฐฉ๋ฒ• 1: ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•œ ์ž๋™ ์ƒ์„ฑ (๊ถŒ์žฅ)

์ปจํ…Œ์ด๋„ˆ ์ตœ์ดˆ ๊ตฌ๋™ ์‹œ INIT_USER ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค:

docker run -d -p 2222:22 -p 3389:3389 \
  -e INIT_USER=dev \
  -e INIT_USER_PASSWORD=password \
  -e XRDP_DESKTOP=yes \
  hwport/ubuntu:24.04

์ด๋ฏธ ํ•ด๋‹น ์‚ฌ์šฉ์ž๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์ค‘๋ณต ์ƒ์„ฑํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ปจํ…Œ์ด๋„ˆ ์žฌ์‹œ์ž‘ ์‹œ์—๋„ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ• 2: docker exec๋ฅผ ํ†ตํ•œ ์ˆ˜๋™ ์ƒ์„ฑ

์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ ํ›„ ์ง์ ‘ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค:

# ์‚ฌ์šฉ์ž ์ƒ์„ฑ
docker exec -i -t <container-name> \
  useradd -c "Developer" -d "/home/dev" \
  -g "users" -G "users,adm,sudo,audio,input" \
  -s "/bin/bash" -m dev

# ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •
docker exec -i -t <container-name> \
  sh -c "echo \"dev:password\" | chpasswd"

๋ฐ์Šคํฌํ†ฑ ์—ฐ๊ฒฐ

  • SSH: ssh -p 2222 dev@localhost
  • XRDP: ๋ชจ๋“  RDP ํด๋ผ์ด์–ธํŠธ๋กœ localhost:3389์— ์—ฐ๊ฒฐ
  • ์›น ํ„ฐ๋ฏธ๋„: http://localhost:4200๋กœ ์ด๋™ (SHELLINABOX=yes์ธ ๊ฒฝ์šฐ)

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ด๋ฏธ์ง€

๊ธฐ๋ณธ ๊ฐœ๋ฐœ ์ด๋ฏธ์ง€

ํƒœ๊ทธ ์„ค๋ช… ์•„ํ‚คํ…์ฒ˜
latest ์ตœ์‹  Ubuntu LTS Multi-arch
24.04 Ubuntu 24.04 Noble Multi-arch
22.04 Ubuntu 22.04 Jammy Multi-arch
20.04 Ubuntu 20.04 Focal Multi-arch
18.04 Ubuntu 18.04 Bionic Multi-arch
16.04 Ubuntu 16.04 Xenial Multi-arch
14.04 Ubuntu 14.04 Trusty Multi-arch
12.04 Ubuntu 12.04 Precise Multi-arch

์›น ์„œ๋ฒ„ ์ด๋ฏธ์ง€

ํƒœ๊ทธ ์„ค๋ช…
www-latest Apache + PHP-FPM (์ตœ์‹ )
www-24.04 Apache + PHP-FPM (24.04)
www-22.04 Apache + PHP-FPM (22.04)
www-20.04 Apache + PHP-FPM (20.04)

ํŠน์ˆ˜ ๋ชฉ์  ์ด๋ฏธ์ง€

ํƒœ๊ทธ ์„ค๋ช…
strongswan IPsec VPN ์„œ๋ฒ„ (strongSwan)
cron Cron ์„œ๋น„์Šค ์ปจํ…Œ์ด๋„ˆ
xrdp ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ ์„œ๋ฒ„

๊ธฐ๋Šฅ

๊ฐœ๋ฐœ ๋„๊ตฌ

  • ์ปดํŒŒ์ผ๋Ÿฌ: gcc, g++, clang/LLVM
  • ๋นŒ๋“œ ์‹œ์Šคํ…œ: make, cmake, meson, ninja, autotools
  • ๋ฒ„์ „ ๊ด€๋ฆฌ: git, svn, cvs
  • ๋””๋ฒ„๊ฑฐ: gdb, strace
  • ๋นŒ๋“œ ๊ฐ€์†: ccache, distcc
  • ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž: apt, pip

์ปค๋„ ๋ฐ ์ž„๋ฒ ๋””๋“œ ๊ฐœ๋ฐœ

  • Linux ์ปค๋„ ํ—ค๋”
  • ๋””๋ฐ”์ด์Šค ํŠธ๋ฆฌ ์ปดํŒŒ์ผ๋Ÿฌ
  • U-Boot ๋„๊ตฌ
  • ํฌ๋กœ์Šค ์ปดํŒŒ์ผ ์ง€์›
  • Verilog ๋„๊ตฌ (iverilog, gtkwave)

๋ฐ์Šคํฌํ†ฑ ํ™˜๊ฒฝ (18.04+)

  • WM: ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํฌํ•จ๋œ XFCE4
  • ์›๊ฒฉ ์ ‘์†: XRDP, SSH, Shellinabox
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜: Firefox, LibreOffice, GIMP, VLC
  • EDA: KiCad, LibreCAD
  • ํ•œ๊ตญ์–ด ์ง€์›: ๋‚˜๋ˆ” ํฐํŠธ, ibus-hangul

ํ”Œ๋žซํผ๋ณ„ ๊ธฐ๋Šฅ

  • amd64: NVIDIA CUDA ํˆดํ‚ท, Android Studio
  • amd64/arm64: KiCad, LibreOffice, Firefox
  • ๋ชจ๋“  ํ”Œ๋žซํผ: ํ‘œ์ค€ ๊ฐœ๋ฐœ ๋„๊ตฌ

ํ™˜๊ฒฝ ๋ณ€์ˆ˜

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ์ปจํ…Œ์ด๋„ˆ ๋™์ž‘ ๊ตฌ์„ฑ:

docker run -d \
  -e TZ=Asia/Seoul \
  -e LANG=ko_KR.UTF-8 \
  -e INIT_USER=dev \
  -e INIT_USER_PASSWORD=password \
  -e XRDP_DESKTOP=yes \
  -e SHELLINABOX=yes \
  -e CLAMAV=yes \
  hwport/ubuntu:24.04

์‹œ์Šคํ…œ ์„ค์ •

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ธฐ๋ณธ๊ฐ’ ์„ค๋ช…
TZ - ์‹œ๊ฐ„๋Œ€ ์„ค์ •. ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ ์‹œ /etc/localtime ๋ฐ /etc/timezone์— ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค. (์˜ˆ: Asia/Seoul, US/Eastern, Europe/London)
LANG en_US.UTF-8 ์‹œ์Šคํ…œ ์–ธ์–ด
TERM xterm ํ„ฐ๋ฏธ๋„ ํƒ€์ž…
LC_ALL C ๋กœ์ผ€์ผ ์ •๋ ฌ
EDITOR vim ๊ธฐ๋ณธ ์—๋””ํ„ฐ

์ดˆ๊ธฐ ์‚ฌ์šฉ์ž ์ƒ์„ฑ

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ธฐ๋ณธ๊ฐ’ ์„ค๋ช…
INIT_USER - ์ƒ์„ฑํ•  ์‚ฌ์šฉ์ž๋ช…. ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉ์ž๋ฅผ ์ž๋™ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
INIT_USER_PASSWORD - ์‚ฌ์šฉ์ž ํŒจ์Šค์›Œ๋“œ. ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํŒจ์Šค์›Œ๋“œ ์—†์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
INIT_USER_COMMENT Developer ์‚ฌ์šฉ์ž ์„ค๋ช… (GECOS ํ•„๋“œ)
INIT_USER_GROUP users ๊ธฐ๋ณธ ๊ทธ๋ฃน
INIT_USER_GROUPS users,adm,sudo,audio,input ๋ณด์กฐ ๊ทธ๋ฃน (sudo ํฌํ•จ)
INIT_USER_SHELL /bin/bash ๊ธฐ๋ณธ ์…ธ

์ปจํ…Œ์ด๋„ˆ ์ตœ์ดˆ ๊ตฌ๋™ ์‹œ ํ•ด๋‹น ์‚ฌ์šฉ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์žฌ์‹œ์ž‘ํ•ด๋„ ๊ธฐ์กด ์‚ฌ์šฉ์ž๋Š” ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ์ œ์–ด

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ธฐ๋ณธ๊ฐ’ ์„ค๋ช…
XRDP_DESKTOP - yes๋กœ ์„ค์ • ์‹œ XRDP ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ ์„œ๋น„์Šค ์‹œ์ž‘
SHELLINABOX - yes๋กœ ์„ค์ • ์‹œ ์›น ๊ธฐ๋ฐ˜ ํ„ฐ๋ฏธ๋„ (Shell In A Box) ์‹œ์ž‘
CLAMAV - yes๋กœ ์„ค์ • ์‹œ ClamAV ์•ˆํ‹ฐ๋ฐ”์ด๋Ÿฌ์Šค ์—…๋ฐ์ดํŠธ ์‹œ์ž‘

ํฌํŠธ

๊ธฐ๋ณธ ๊ฐœ๋ฐœ ์ด๋ฏธ์ง€

  • 22/tcp: SSH ์„œ๋ฒ„
  • 3389/tcp: XRDP ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ
  • 4200/tcp: Shellinabox ์›น ํ„ฐ๋ฏธ๋„

์›น ์„œ๋ฒ„ ์ด๋ฏธ์ง€

  • 80/tcp: HTTP
  • 443/tcp: HTTPS

VPN ์ด๋ฏธ์ง€

  • 500/udp: IKE
  • 4500/udp: NAT-T

์†Œ์Šค์—์„œ ๋นŒ๋“œ

์ „์ œ ์กฐ๊ฑด

# Docker Buildx ์„ค์น˜
cd scripts
./__buildx_install.sh

์ด๋ฏธ์ง€ ๋นŒ๋“œ

# ์ด๋ฏธ์ง€ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
cd 24.04

# ๋นŒ๋“œ ๋ฐ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ํ‘ธ์‹œ
./__buildx.sh

# ๋˜๋Š” ๋กœ์ปฌ ์‚ฌ์šฉ ์ „์šฉ ๋นŒ๋“œ
docker buildx build --platform linux/amd64 -t ubuntu:24.04-local .

๋กœ์ปฌ ํ…Œ์ŠคํŠธ

# ํ…Œ์ŠคํŠธ ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘
./__up.sh

# ๋กœ๊ทธ ๋ณด๊ธฐ
docker logs mzdev-test

# ์ปจํ…Œ์ด๋„ˆ ์ค‘์ง€
./__down.sh

์‚ฌ์šฉ ์‚ฌ๋ก€

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ

GUI ๋„๊ตฌ๊ฐ€ ํฌํ•จ๋œ ์™„์ „ํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ, ๋‹ค์Œ์— ์ ํ•ฉ:

  • ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๊ฐœ๋ฐœ
  • ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • ์ปค๋„ ๋ชจ๋“ˆ ๊ฐœ๋ฐœ
  • CI/CD ๋นŒ๋“œ ํ™˜๊ฒฝ

์›น ํ˜ธ์ŠคํŒ…

PHP-FPM์ด ํฌํ•จ๋œ Apache ์›น ์„œ๋ฒ„ ์ด๋ฏธ์ง€, ๋‹ค์Œ์— ์ ํ•ฉ:

  • PHP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ˜ธ์ŠคํŒ…
  • ๊ฐœ๋ฐœ/์Šคํ…Œ์ด์ง• ํ™˜๊ฒฝ
  • SSL/TLS๊ฐ€ ํ™œ์„ฑํ™”๋œ ์›น์‚ฌ์ดํŠธ

์›๊ฒฉ ๊ทผ๋ฌด

XRDP๊ฐ€ ํ™œ์„ฑํ™”๋œ ๋ฐ์Šคํฌํ†ฑ, ๋‹ค์Œ์— ์ ํ•ฉ:

  • ์›๊ฒฉ ๊ฐœ๋ฐœ
  • GUI ์•ก์„ธ์Šค๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ—ค๋“œ๋ฆฌ์Šค ์„œ๋ฒ„
  • ๊ฐ€์ƒ ์›Œํฌ์Šคํ…Œ์ด์…˜

VPN ๊ฒŒ์ดํŠธ์›จ์ด

StrongSwan IPsec ์„œ๋ฒ„, ๋‹ค์Œ์— ์ ํ•ฉ:

  • ์‚ฌ์ดํŠธ ๊ฐ„ VPN
  • ์›๊ฒฉ ์•ก์„ธ์Šค VPN
  • ๋ณด์•ˆ ํ„ฐ๋„๋ง

Docker Compose ์˜ˆ์ œ

version: "2.1"
services:
  dev:
    image: hwport/ubuntu:24.04
    container_name: my-dev-env
    hostname: devbox
    stdin_open: true
    tty: true
    privileged: true
    environment:
      - container=docker
      - TZ=Asia/Seoul
      - TERM=xterm
      - LC_ALL=C
      - LANG=ko_KR.UTF-8
      - EDITOR=vim
      - INIT_USER=dev
      - INIT_USER_PASSWORD=password
#      - INIT_USER_COMMENT=Developer
#      - INIT_USER_GROUP=users
#      - INIT_USER_GROUPS=users,adm,sudo,audio,input
#      - INIT_USER_SHELL=/bin/bash
      - XRDP_DESKTOP=yes
      - SHELLINABOX=yes
    ports:
      - "2222:22"
      - "3389:3389"
      - "4200:4200"
    restart: unless-stopped

๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ

  • ๊ธฐ๋ณธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ฆ‰์‹œ ๋ณ€๊ฒฝํ•˜์„ธ์š”
  • ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋Œ€์‹  SSH ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”
  • ์ตœ์‹  ๋ณด์•ˆ ํŒจ์น˜๋กœ ์ด๋ฏธ์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”
  • ์ตœ์†Œ ํ•„์š” ๊ถŒํ•œ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”
  • ํ•„์š”ํ•œ ํฌํŠธ๋งŒ ํ˜ธ์ŠคํŠธ์— ๋ฐ”์ธ๋”ฉํ•˜์„ธ์š”

๋ผ์ด์„ ์Šค

Copyright (C) 2024 HWPORT.COM All rights reserved.

๊ด€๋ฆฌ์ž

์กฐ์žฌํ˜ (JaeHyuk Cho) ์ด๋ฉ”์ผ: minzkn@minzkn.com ์›น: https://www.minzkn.com/

๊ธฐ์—ฌ

์ด์Šˆ ๋ฐ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์˜ ๊ฒฝ์šฐ, ๋จผ์ € ์ด์Šˆ๋ฅผ ์—ด์–ด ์ œ์•ˆ ์‚ฌํ•ญ์„ ๋…ผ์˜ํ•ด ์ฃผ์„ธ์š”.

์ง€์›

์ด์Šˆ, ์งˆ๋ฌธ ๋˜๋Š” ์ œ์•ˆ ์‚ฌํ•ญ:

  • ์ €์žฅ์†Œ์— ์ด์Šˆ ์—ด๊ธฐ
  • ๊ด€๋ฆฌ์ž์—๊ฒŒ ์ง์ ‘ ์—ฐ๋ฝ

์ฐธ๊ณ : ์ด ์ด๋ฏธ์ง€๋“ค์€ ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ, ๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๊ตฌ์„ฑ์„ ๊ฒ€ํ† ํ•˜๊ณ  ๋งž์ถค ์„ค์ •ํ•˜์„ธ์š”.