[Docker] Ubuntu 18.04 ๊ฐ€์ƒ ํ™˜๊ฒฝ Docker ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ๊ณผ ์‹คํ–‰

2022. 7. 7. 17:52ยท๐ŸŒŒ OS/Linux-๋ฆฌ๋ˆ…์Šค
728x90
728x90

Docker๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Docker Image๋ฅผ ๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹์ด๋‹ค.

Image๋Š” ๊ณต์‹ ๋ฐฐํฌํŒ, ์‚ฌ์šฉ์ž ์ œ์ž‘ํŒ ๋“ฑ ๋‹ค์–‘ํ•œ๋ฐ Docker๋ฅผ ์ฒ˜์Œ ์‹คํ–‰ํ•˜๋ฉด ์•„๋ฌด๊ฒƒ๋„ Install๋˜์ง€ ์•Š์€ ๋ฐฑ์ง€์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž์‹ ์ด ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ, ์‚ฌ์šฉํ•  ํŒจํ‚ค์ง€๋“ค์ด ์–ด๋А์ •๋„ Install๋˜์–ด์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์•„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค.

 

ํ•„์ž๋Š” Ubuntu 18.04์—์„œ ROS๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ROS melodic ๋ฒ„์ „์„ ์„ค์น˜ํ•  ๊ฒƒ์ด๋‹ค.

https://hub.docker.com/r/osrf/ros

 

 

Docker๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์˜จ ํ›„, run ๋ช…๋ น์„ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ & ์‹คํ–‰์„ ๋™์‹œ์— ํ•  ์ˆ˜ ์žˆ๋‹ค.

$ docker run {์˜ต์…˜} {์ด๋ฏธ์ง€} {๋ช…๋ น์–ด} {์ธ์ž}

 

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด, run์—๋Š” ์˜ต์…˜/์ด๋ฏธ์ง€/๋ช…๋ น์–ด/์ธ์ž ์ด 4๊ฐ€์ง€ ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ฏธ์ง€๋Š” ํ•„์ˆ˜๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

 

 

๋ณธ์ธ์—๊ฒŒ ํ•„์š”ํ•œ ์˜ต์…˜๊ณผ, ๋ฏธ๋ฆฌ ๋ฐ›์•„๋‘” ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

$ docker run -it -v /home/idox23/ros_melodic:/mnt -e DISPLAY=unix$DISPLAY -e USER=$USER -e XDG_RUNTIME_DIR=/tmp -v /root/.Xauthority:/root/.Xauthority -v /tmp/.X11-unix:/temp/.X11 --privileged --gpus all --net=host --name ros_melodic  osrf/ros:melodic-desktop-full-bionic

 

 

์ฐธ๊ณ ๋กœ ์ด๋ฏธ์ง€๋Š” ์•„๋ž˜ ๋ช…๋ น์„ ํ†ตํ•ด ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฏธ์ง€๋ช…๊ณผ ํƒœ๊ทธ๋Š” Docker Hub์˜ ํ•ด๋‹น ์ด๋ฏธ์ง€ ๋งํฌ์—์„œ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.

$ docker pull {์ด๋ฏธ์ง€:ํƒœ๊ทธ}

 

 

Docker Run ์˜ต์…˜

  • -i (--interactive)
    • ํ‘œ์ค€ ์ž…๋ ฅ(stdin)์„ ํ™œ์„ฑํ™”ํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ์™€ ์—ฐ๊ฒฐ(attach)๋˜์–ด ์žˆ์ง€ ์•Š๋”๋ผ๋„ ํ‘œ์ค€ ์ž…๋ ฅ์„ ์œ ์ง€
    • Bash๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•„์ˆ˜๋กœ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ์˜ต์…˜.
  • -t (--tty)
    • TTY ๋ชจ๋“œ(pseudo-TTY) ์‚ฌ์šฉ
    • Bash๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•„์ˆ˜๋กœ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ์˜ต์…˜. (๋ช…๋ น ์ž…๋ ฅ์€ ๊ฐ€๋Šฅํ•˜๋‚˜ ์‰˜์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Œ)
    • ๋”๋ณด๊ธฐ
      ๋ณดํ†ต -i ์˜ต์…˜๊ณผ -t ์˜ต์…˜์€ -it๋กœ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค. (์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ข…๋ฃŒํ•˜์ง€ ์•Š์€ ์ฑ„๋กœ ํ„ฐ๋ฏธ๋„์˜ ์ž…๋ ฅ์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•จ. ์ปจํ…Œ์ด๋„ˆ์˜ ์‰˜, CLI ์‚ฌ์šฉ์‹œ ์œ ์šฉํ•จ!)
  • --name
    • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ์„ค์ • (์ด๋ฆ„์„ ์„ค์ •ํ•ด๋‘๋ฉด docker ps, rm ๋“ฑ ๋„์ปค ๊ด€๋ฆฌ ๋ช…๋ น ์ด์šฉ์‹œ ์œ ์šฉํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Œ)
  • -d (--detach)
    • Detached ๋ชจ๋“œ(๋ฐ๋ชฌ ๋ชจ๋“œ). ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰
  • -p (--publish)
    • ํŠน์ • ํฌํŠธ๋ฅผ ์™ธ๋ถ€์— ๋…ธ์ถœ์‹œํ‚ด. (ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ํฌํŠธ๋ฅผ ์—ฐ๊ฒฐ - ํฌํŠธํฌ์›Œ๋”ฉ)
    • IP ์ฃผ์†Œ:ํ˜ธ์ŠคํŠธ ํฌํŠธ:์ปจํ…Œ์ด๋„ˆ ํฌํŠธ → ํ˜ธ์ŠคํŠธ์— ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ด๊ฑฐ๋‚˜ IP ์ฃผ์†Œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๋•Œ
    • ์ปจํ…Œ์ด๋„ˆ ํฌํŠธ ๋˜๋Š” ํ˜ธ์ŠคํŠธ ํฌํŠธ ๋ฏธ์„ค์ •์‹œ ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ๋ฌด์ž‘์œ„๋กœ ์„ค์ •๋จ
  • --privileged
    • ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ํ˜ธ์ŠคํŠธ์˜ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๊ธฐ๋Šฅ(Capability)์„ ๋ชจ๋‘ ์‚ฌ์šฉ
    • ํ˜ธ์ŠคํŠธ์˜ ์ฃผ์š” ์ž์›์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์ ์–ด์ค˜์•ผ ํ•˜๋‚˜ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•จ → GUI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‚ฌ์šฉํ•  ๋•Œ ํ•„์š”ํ•ด์„œ ์ผ๋‹จ์€ ์ ์—ˆ์œผ๋‚˜ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ํ•„์š”๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.
  • --rm
    • ์ปจํ…Œ์ด๋„ˆ (์•ˆ์˜ ํ”„๋กœ์„ธ์Šค) ์ข…๋ฃŒ์‹œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ž๋™์œผ๋กœ ์‚ญ์ œ
  • --restart
    • ์ปจํ…Œ์ด๋„ˆ (์•ˆ์˜ ํ”„๋กœ์„ธ์Šค) ์ข…๋ฃŒ์‹œ, ์žฌ์‹œ์ž‘ ์ •์ฑ…์„ ์„ค์ •
    • no: ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ๋˜์–ด๋„ ์ปจํ…Œ์ด๋„ˆ ์žฌ์‹œ์ž‘ํ•˜์ง€ ์•Š์Œ
    • on-failure; Exit Code๊ฐ€ 0์ด ์•„๋‹ ๋•Œ๋งŒ ์žฌ์‹œ์ž‘
    • always: Exit Code์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์žฌ์‹œ์ž‘
  • -v, --volume
    • ๋ฐ์ดํ„ฐ ๋ณผ๋ฅจ ์„ค์ •
    • ํ˜ธ์ŠคํŠธ์™€ ๊ณต์œ ํ•  ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์„ค์ •(ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐ)ํ•˜์—ฌ ํŒŒ์ผ์„ ์ปจํ…Œ์ด๋„ˆ์— ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ํ˜ธ์ŠคํŠธ์— ๋ฐ”๋กœ ์ €์žฅ (=mount)
  • -u, --user
    • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋  ๋ฆฌ๋ˆ…์Šค ์‚ฌ์šฉ์ž ๊ณ„์ • ์ด๋ฆ„ ๋˜๋Š” UID ์„ค์ •
  • -e, --env
    • ์ปจํ…Œ์ด๋„ˆ์— ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ • (์ฃผ๋กœ ์„ค์ •๊ฐ’, ๋น„๋ฐ€๋ฒˆํ˜ธ ์ „๋‹ฌ ๋“ฑ์— ์‚ฌ์šฉ)
  • --link
    • ์ปจํ…Œ์ด๋„ˆ ์—ฐ๊ฒฐ {์ปจํ…Œ์ด๋„ˆ๋ช…}:{๋ณ„์นญ}
  • -h, --hostname
    • ์ปจํ…Œ์ด๋„ˆ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ์„ค์ •
  • -w, --workdir
    • ์ปจํ…Œ์ด๋„ˆ ์•ˆ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋  ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์„ค์ •
  • -a, --attach
    • ์ปจํ…Œ์ด๋„ˆ์— ํ‘œ์ค€ ์ž…๋ ฅ(stdin), ํ‘œ์ค€ ์ถœ๋ ฅ(stdout), ํ‘œ์ค€ ์—๋Ÿฌ(stderr) ์—ฐ๊ฒฐ {--attach="stdin"}
  • -c, --cpu-shares
    • CPU ์ž์› ๋ถ„๋ฐฐ ์„ค์ • (๊ธฐ๋ณธ ๊ฐ’=1024)
  • -m, --memory
    • ๋ฉ”๋ชจ๋ฆฌ ํ•œ๊ณ„ ์„ค์ •
    • <์ˆซ์ž><๋‹จ์œ„> ํ˜•์‹
    • ๋‹จ์œ„: b, k, m, g
  • --gpus
    • ์ปจํ…Œ์ด๋„ˆ์—์„œ ํ˜ธ์ŠคํŠธ์˜ NVIDIA GPU ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ • (ํ˜ธ์ŠคํŠธ๋Š” NVIDIA GPU ๊ฐ€ ์žฅ์ฐฉ ๋œ Linux ์„œ๋ฒ„์—ฌ์•ผํ•˜๋ฉฐ, NVIDIA driver ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผํ•˜๊ณ , docker 19.03.5 ๋ฒ„์ „ ์ด์ƒ์ด์–ด์•ผํ•จ. GUI ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ์˜ต์…˜)
    • --gpus all : GPU ๋ชจ๋‘ ์‚ฌ์šฉ
    • --gpus ”device=0,1” : GPU ์ง€์ •ํ•ด์„œ ์‚ฌ์šฉ
728x90
320x100
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐ŸŒŒ OS > Linux-๋ฆฌ๋ˆ…์Šค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[E] qt.qpa.xcb: xcb_shm_attach() failed  (0) 2022.07.09
[E] E: The list of sources could not be read.  (0) 2022.07.09
[E] QXcbConnection: Could not connect to display unix:10.0  (0) 2022.07.07
[Linux] ๋ฆฌ๋ˆ…์Šค๋ž€ ๋ฌด์—‡์ธ๊ฐ€?  (0) 2022.07.04
[Linux] ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ณธ ๋ช…๋ น์–ด ๋ชจ์Œ  (0) 2022.05.24
'๐ŸŒŒ OS/Linux-๋ฆฌ๋ˆ…์Šค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [E] qt.qpa.xcb: xcb_shm_attach() failed
  • [E] E: The list of sources could not be read.
  • [E] QXcbConnection: Could not connect to display unix:10.0
  • [Linux] ๋ฆฌ๋ˆ…์Šค๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
mxnxeonx
mxnxeonx
"์•„, ์ด๊ฑฐ ๋ญ์˜€๋”๋ผ"๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ์œ„ํ•œ ์ผ๊ธฐ์žฅ.
  • mxnxeonx
    MJ's Development Diary
    mxnxeonx
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (154)
      • ๐Ÿ’ป Language (43)
        • Java : ์ž๋ฐ” (18)
        • Python : ํŒŒ์ด์ฌ (9)
        • ROS : ๋กœ๋ด‡์‹œ์Šคํ…œ (9)
        • Android : ์•ˆ๋“œ๋กœ์ด๋“œ (4)
        • JavaScript : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ (2)
      • ๐ŸŒ Environment (19)
        • IDE : ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ (9)
        • Virtual : ๊ฐ€์ƒํ™˜๊ฒฝ (10)
      • โš™ Framework (12)
        • Vue-๋ทฐ (3)
        • Spring-์Šคํ”„๋ง (7)
      • ๐Ÿ’พ DataBase (18)
      • ๐ŸŒŒ OS (36)
        • Linux-๋ฆฌ๋ˆ…์Šค (36)
      • ๐Ÿ’ฌ CI · CD (7)
        • Git : ๊นƒ (7)
      • ๐Ÿ“ƒ ETC (3)
      • ๐Ÿค– AI (4)
  • ๋งํฌ

    • GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
mxnxeonx
[Docker] Ubuntu 18.04 ๊ฐ€์ƒ ํ™˜๊ฒฝ Docker ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ๊ณผ ์‹คํ–‰
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”