ํ์ฌ docker run -privileged ์ธ๋ถ์์ ๊ถํ ์๋ ์์ ์ ์คํํ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฆ, Dockerfile์์ ๋์ผํ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋ด ์ต๊ทผ ๋ฌธ์ : ์ปจํ ์ด๋ ๋ด๋ถ์์ fuse(encfs์ฉ)๋ฅผ ์คํํ๊ณ ์ถ์ต๋๋ค. mknod๊ฐ ์คํจํ๊ฑฐ๋ ๊ถํ ์๋ ๋น๋ ๋จ๊ณ ์์ด๋ ์ง์๋์ง ์๊ธฐ ๋๋ฌธ์ ํจ์ฆ๋ฅผ ์ค์นํ๋ ๊ฒ์ ์ด๋ฏธ ํดํน ๋ฐ ์ถ์ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์๋ง์ ๋๋ค([1] ๋ฐ [2] ์ฐธ์กฐ).
ํ์ฌ ์ ์ผํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ run -privileged๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์ค์น๋ฅผ ์ํํ๊ณ ์ 'ํจ์ฆ ๊ธฐ๋ณธ ์ด๋ฏธ์ง'๋ฅผ ๋ง๋๋ ๊ฒ์ ๋๋ค. ์ฆ, ํ๋์ Dockerfile์์ ๊ณต์ ๊ธฐ๋ณธ ์ด๋ฏธ์ง๋ถํฐ ๋๊น์ง ์ ์ฒด ์ปจํ ์ด๋๋ฅผ ์ค๋ช ํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ค์ ์ค ํ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋๋
์์ค๋ฅผ ๋ณด๋ ค๊ณ ํ์ง๋ง go๋ก ์ธ๋ชจ๊ฐ ์์๊ณ ๋ถํํ๋ ๊ฐ๋ ์ฆ๋ช ์ ์ฒจ๋ถํ ์ ์ ํ ์ง์ ์ ์ ์ฐพ์ ์ ์์์ต๋๋ค. :(
1: https://github.com/rogaha/docker-desktop/blob/master/Dockerfile#L40
2: https://github.com/dotcloud/docker/issues/514#issuecomment -22101217
์ฐ๋ฆฌ๊ฐ ์ด๊ฒ์ ์ํด ๊ฐ๋ค๋ฉด, ๋๋ ๋ค์์ ๊ฐ๋ ๋์ ์ RUNP ์ต์
์ ์ ํธํฉ๋๋ค.
-privileged ๋ชจ๋์์ ์คํ๋๋ ๋ชจ๋ ์ปจํ
์ด๋.
2013๋
9์ 18์ผ ์์์ผ ์คํ 1:07 Benjamin Podszun
์๋ฆผ@github.com์์ฑ :
ํ์ฌ๋ก์๋ ๊ถํ ์๋ ์์ ์ ์ธ๋ถ์์ ์คํํ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋์ปค ์คํ - ๊ถํ์ด ์์ต๋๋ค.์ฆ, Dockerfile์์ ๋์ผํ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋์ ์ต๊ทผ
๋ฌธ์ : ์ปจํ ์ด๋ ๋ด๋ถ์์ fuse(encfs์ฉ)๋ฅผ ์คํํ๊ณ ์ถ์ต๋๋ค. ์ค์น ์ค
ํจ์ฆ๋ ์ด๋ฏธ ํดํน ๋ฐ ์ถ์ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์๋ง์ ๋๋ค([1] ๋ฐ [2] ์ฐธ์กฐ).
๊ถํ ์๋ ๋น๋ ๋จ๊ณ ์์ด๋ mknod๊ฐ ์คํจ/์ง์๋์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.ํ์ฌ ์ ์ผํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ค์์ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์ค์นํ๋ ๊ฒ์ ๋๋ค.
-privileged๋ฅผ ์คํํ๊ณ ์๋ก์ด 'ํจ์ฆ ๊ธฐ๋ณธ ์ด๋ฏธ์ง'๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ ์๋ฏธ๋ ๋ด๊ฐ
๊ณต์ ๊ธฐ๋ณธ ์ด๋ฏธ์ง์์ ๋ง๋ฌด๋ฆฌ๊น์ง ์ ์ฒด ์ปจํ ์ด๋๋ฅผ ์ค๋ช ํ ์ ์์ต๋๋ค.
๋จ์ผ Dockerfile์์.๋ฐ๋ผ์ ๋ค์ ์ค ํ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ๋์ปค ๋น๋ - ๊ถํ
์ด๊ฒ์ run-privileged์ ๋์ผํ ์์ ์ ์ํํด์ผ ํฉ๋๋ค. ์ฆ, ๋ชจ๋
๋ชจ์ ์ ํ๋๋
- Dockerfile์ RUNP ๋ช ๋ น
์ด๊ฒ์ .. ์ .. ์คํ๋์ด์ผ ํ์ง๋ง _P_rivileges์ ํจ๊ป์์ค๋ฅผ ์ฐพ์๋ดค๋๋ฐ ๊ฐ๋ ์์ฉ์๊ณ ๋ชป์ฐพ๊ฒ ๋ค
๋ถํํ๋ ๊ฐ๋ ์ฆ๋ช ์ ์ฒจ๋ถํ๊ธฐ์ ์ ์ ํ ์ง์ ์ ์ ๋๋ค. :(1: https://github.com/rogaha/docker-desktop/blob/master/Dockerfile#L40
2: #514(๋๊ธ) https://github.com/dotcloud/docker/issues/514#issuecomment -22101217โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/dotcloud/docker/issues/1916์์ ํ์ธํ์ธ์.
.
๋น
ํฐ ๋ทฐ
http://vvieux.com
์ฌ์ค, ์ฐ๋ฆฌ๋ ๋ ๋ค ํด์ผ ํ ์๋ ์์ต๋๋ค. ์ฆ, RUNP +๋ "-privileged"๋ฅผ ์๊ตฌํฉ๋๋ค.
๊น๋ฐ.
"-privileged"๋ฅผ ์๊ตฌํ์ง ์๊ณ RUNP์๋ง ์์กดํ๋ค๋ฉด,
๋น๋๋ฅผ ํ ๋ "์ด ๋น๋๊ฐ ์์ ํ๊ฐ์?"๋ผ๋ ์ง๋ฌธ์ ํด์ผ ํฉ๋๋ค.
"-privileged"์๋ง ์์กดํ๋ฉด ์ ๋ณด๋ฅผ ๋์น๊ฒ ๋ฉ๋๋ค(
Dockerfile) "์ด ์์
์๋ ํ์ฅ๋ ๊ถํ์ด ํ์ํฉ๋๋ค".
๋ ๊ฐ์ง๋ฅผ ๋ณํํ๋ ๊ฒ์ด ๊ฐ์ฅ ์์ ํ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
2013๋
9์ 18์ผ ์์์ผ ์ค์ 4:07 Benjamin Podszun
์๋ฆผ@github.com์์ฑ :
ํ์ฌ๋ก์๋ ๊ถํ ์๋ ์์ ์ ์ธ๋ถ์์ ์คํํ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋์ปค ์คํ - ๊ถํ์ด ์์ต๋๋ค.์ฆ, Dockerfile์์ ๋์ผํ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋์ ์ต๊ทผ
๋ฌธ์ : ์ปจํ ์ด๋ ๋ด๋ถ์์ fuse(encfs์ฉ)๋ฅผ ์คํํ๊ณ ์ถ์ต๋๋ค. ์ค์น ์ค
ํจ์ฆ๋ ์ด๋ฏธ ํดํน ๋ฐ ์ถ์ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์๋ง์ ๋๋ค([1] ๋ฐ [2] ์ฐธ์กฐ).
๊ถํ ์๋ ๋น๋ ๋จ๊ณ ์์ด๋ mknod๊ฐ ์คํจ/์ง์๋์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.ํ์ฌ ์ ์ผํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ค์์ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์ค์นํ๋ ๊ฒ์ ๋๋ค.
-privileged๋ฅผ ์คํํ๊ณ ์๋ก์ด 'ํจ์ฆ ๊ธฐ๋ณธ ์ด๋ฏธ์ง'๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ ์๋ฏธ๋ ๋ด๊ฐ
๊ณต์ ๊ธฐ๋ณธ ์ด๋ฏธ์ง์์ ๋ง๋ฌด๋ฆฌ๊น์ง ์ ์ฒด ์ปจํ ์ด๋๋ฅผ ์ค๋ช ํ ์ ์์ต๋๋ค.
๋จ์ผ Dockerfile์์.๋ฐ๋ผ์ ๋ค์ ์ค ํ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ๋์ปค ๋น๋ - ๊ถํ
์ด๊ฒ์ run-privileged์ ๋์ผํ ์์ ์ ์ํํด์ผ ํฉ๋๋ค. ์ฆ, ๋ชจ๋
๋ชจ์ ์ ํ๋๋
- Dockerfile์ RUNP ๋ช ๋ น
์ด๊ฒ์ .. ์ .. ์คํ๋์ด์ผ ํ์ง๋ง _P_rivileges์ ํจ๊ป์์ค๋ฅผ ์ฐพ์๋ดค๋๋ฐ ๊ฐ๋ ์์ฉ์๊ณ ๋ชป์ฐพ๊ฒ ๋ค
๋ถํํ๋ ๊ฐ๋ ์ฆ๋ช ์ ์ฒจ๋ถํ๊ธฐ์ ์ ์ ํ ์ง์ ์ ์ ๋๋ค. :(1: https://github.com/rogaha/docker-desktop/blob/master/Dockerfile#L40
2: #514(๋๊ธ) https://github.com/dotcloud/docker/issues/514#issuecomment -22101217โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/dotcloud/docker/issues/1916์์ ํ์ธํ์ธ์.
.
@jpetazzo https://twitter.com/jpetazzo
์ต์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ: http://blog.docker.io/2013/09/docker-joyent-openvpn-bliss/
ํฉ๋ฆฌ์ ์ผ๋ก ๋ค๋ฆฌ๋ค์. ๋์๊ฒ ์ด ๊ธฐ๋ฅ(์ฅ์น ๋ ธ๋๋ฅผ ์์ฑํ ์ ์์)์ Docker์์ ๋ฐฐํฌ๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ์ ๋ง๋ค๊ฑฐ๋ ๋์ต๋๋ค. ๋ด๊ฐ ๋์ธ ์ ์๋ค๋ฉด (๋๋ถ๋ถ ํ ์คํธ, ๋๋ ์์ค๋ฅผ ๋ณด๋ ค๊ณ ํ์ง๋ง ์ง๊ธ๊น์ง๋ ์คํจํ์ต๋๋ค. ๋น๋ ํ์ผ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ช ๋ น์ ๋ฆฌํ๋ ์ ์ ํตํด ์ฐพ์ ๊ฒ ๊ฐ์ต๋๋ค. config.privileged๋ฅผ true๋ก ์ค์ ํ๋ runp ๋ช ๋ น์ ์ถ๊ฐํ์ง๋ง ์ง๊ธ๊น์ง๋ ๋น๋ ๋ฐ ํ ์คํธํ ์ ์์ -> ๋ฉ์ถค) ๊ธฐ๊บผ์ด ์๊ฐ์ ํฌ์ํ๊ฒ ์ต๋๋ค.
RUNP
+ build -privileged
์ ์ํฉ๋๋ค.
_@ shykes , @crosbymichael_์ ์ฃผ์๋ฅผ
... ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๊ตฌํํ ์ฌ๋์ ์ฐพ์์ผ ํ ๊ฒ์
๋๋ค. ๋ฌผ๋ก โบ
๊ทธ๊ฒ์ด ๋น์ ์ด ์๋ํ๊ณ ์ถ์ ๊ฒ์
๋๊น(๋ฌผ๋ก ํต์ฌ ํ์ ์ ์ ํ ์ง์นจ๊ณผ ํผ๋๋ฐฑ๊ณผ ํจ๊ป)?
๋ง์ง๋ง ๋ถ๋ถ์ด ๋๋ฅผ ๋์์ผ๋ก ํ ๊ฒฝ์ฐ: ๋ฌผ๋ก ์ ๋๋ค. ๋๋ ์ด๋ฏธ go ์ฝ๋๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค๊ณ ์์ต๋๋ค.
๋ช ๊ฐ์ง ์ง๋ฌธ์ ๋ํด ํ(ping)ํ ๋ช ๊ฐ์ง ์ง์นจ/๋๊ตฐ๊ฐ๊ฐ ์์ผ๋ฉด ํ์คํ ์๋ํด ๋ณผ ๊ฒ์ ๋๋ค.
๋๋ RUNP์ ํ๋ฆฌ์ง ์๊ฑฐ๋ ๊ถํ์ด ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋์ผํ ์ ๋ ฅ์ ๋ํด ๊ฐ๋ฅํ ๋ค๋ฅธ ๋น๋๋ฅผ ์๊ฐํ๋ ๊ฒ์ ์ข์ํ์ง ์์ต๋๋ค. ์ด๊ฒ์ด ๋น๋์ ์ธ์ ๋๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ ๋ฌํ ์ ์๋ ์ด์ ์ ๋๋ค.
ํนํ ๋๋ a) ๋งค์ฐ ํฌ๊ณ b) ๋ช ํํ๊ฒ ์ง์ ๋๊ฑฐ๋ ์ ์๋์ง ์์ ๊ธฐ๋ฅ ์งํฉ์ ์ง์ ํ๊ธฐ ๋๋ฌธ์ "ํน๊ถ"์ ๋ํ ์ข ์์ฑ์ ๋ชจ๋ ๊ณณ์์ ๋์ ํ๋ ๊ฒ์ ์ข์ํ์ง ์์ต๋๋ค. ํ์ค ๋์ปค ์คํ ํ๊ฒฝ์ด ์ถฉ๋ถํ์ง ์์ ๋ ์์คํ ๊ด๋ฆฌ์๊ฐ ์ ๋ถ ์๋๋ฉด ์ ๋ฌด(all-or-nothing) ๋ฐฉ์์ผ๋ก ๋ณด์์ ์ฐํํ๋ ๊ฑฐ์น ๋ฉ์ปค๋์ฆ์ผ๋ก์๋ ๊ด์ฐฎ์ต๋๋ค. bind-mounts ๋ฐ ์ฌ์ฉ์ ์ ์ lxc-conf์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ์ฌํฉ๋๋ค.
โ
@solomonstre
@getdocker
2013๋
9์ 20์ผ ๊ธ์์ผ ์คํ 3:18 Benjamin Podszun
[email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๋ง์ง๋ง ๋ถ๋ถ์ด ๋๋ฅผ ๋์์ผ๋ก ํ ๊ฒฝ์ฐ: ๋ฌผ๋ก ์ ๋๋ค. ๋๋ ์ด๋ฏธ go ์ฝ๋๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค๊ณ ์์ต๋๋ค.
๋ช ๊ฐ์ง ์ง๋ฌธ์ ๋ํด ํ(ping)ํ ๋ช ๊ฐ์ง ์ง์นจ/๋๊ตฐ๊ฐ๊ฐ ์์ผ๋ฉด ํ์คํ ์๋ํด ๋ณผ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/dotcloud/docker/issues/1916#issuecomment -24844868
์๋ฅผ ๋ค์ด ํจ์ฆ๋ฅผ ์คํํ๋ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ผ ํ๋ค๋ ๋ฐ ๋์ํ์ญ๋๊น?
์ด๋ฅผ ์ํด์๋ mknod๊ฐ ํ์ํฉ๋๋ค.
๋ด๊ฐ ๋ณด๊ธฐ์๋ ์ด๋ฌํ ๋น๋๊ฐ ๋งค๊ฐ๋ณ์์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋น๋๋ ์๋ํ๊ฑฐ๋(ํ์ฌ๋ณด๋ค ์ ํ์ด ์ ์) ์คํจํฉ๋๋ค(ํ์ฌ ์ํ). ๋์ผํ ๋น๋ ํ์ผ์ ๋ค๋ฅธ '๋ฒ์ '์ ๋ํ ์ํ์ด ๊ฑฐ์ ๋๋ ์ ํ ์์ต๋๋ค.
์ง๊ธ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ํ์ํ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ค๋ฉด Dockerfile์ build
ํ๋ ๋์ ์ผ๋ จ์ run -privileged
๋จ๊ณ + commit
๋จ๊ณ๋ฅผ ์ํํด์ผ ํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ Dockerfile์์ ์ด๋ฏธ์ง ๋น๋ ๋จ๊ณ๋ฅผ ํํํ๋ ๊ฒ์ด ์ข์ ๊ฒ์
๋๋ค.
mknod ์์
๊ณผ๋ ๊ด๋ จ์ด ์์ต๋๊น?
๊ถํ ๋ชจ๋๊ฐ ํ์ํ ์์
์ ์ ํํ ์ค๋ช
ํ ์ ์๋ค๋ฉด
๊ทํ์ ๊ฒฝ์ฐ ๋งค์ฐ ๋์์ด ๋ ๊ฒ์
๋๋ค!
๊ฐ์ฌ ํด์,
์๋ ํ์ธ์ @jpetazzo , ๋ฉ์ผ๋ง ๋ฆฌ์คํธ์์ ์ ๊ฐ ์ง๋ฉดํ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. https://groups.google.com/forum/#!topic/docker -user/1pFhqlfbqQI
์ปจํ
์ด๋ ๋ด๋ถ์์ ๋ด๊ฐ ๋ง๋ ( aufs ๋ฐ ์ ๋๋ง์ ๋ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์์ฑ๋) mount
a fs๋ฅผ ์๋ํ๊ณ ์์ต๋๋ค. ๋ด๊ฐ ์คํํ๋ ํน์ ๋ช
๋ น์ mount -o loop=/dev/loop0 /db/disk-image /home/db2inst1
. ์ฌ๊ธฐ์ /db/disk-image
๋ dd if=/dev/zero of=disk-image count=409600
๋์๊ณ home/db2inst1
๋ db2๋ฅผ ์์ํ๋ ค๋ ๊ณณ์
๋๋ค.
๋ด๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด ์ค์น ๊ณผ์ ์์ AUFS๊ฐ ์๋ ๋๋ ํ ๋ฆฌ๊ฐ ํ์ํ๊ฑฐ๋ O_DIRECT
๋ฅผ ์ง์ํ๋ ๋๋ ํ ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ Docker 0.7์ AUFS ๋์ ext4(๋ฐ ๋ธ๋ก ์์ค ์ค๋
์ท)๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํฉ๋๋ค.
์ด๊ฒ๋ +1.
๋ฉ๋ชจ๋ฆฌ ์ค์ ๋ฐ ์ปค๋ ๊ตฌ์ฑ ๋ณ๊ฒฝ์ด ํ์ํ ํจํค์ง(์: Vertica DB, WebSphere MQ) ์ค์น๋ ๊ถํ ๋ชจ๋์์๋ง ์ํํ ์ ์์ต๋๋ค.
"๊ถํ ์์"์ผ๋ก ์คํ/๋น๋ํ ๋ ๋ฌธ์ ๋ฅผ ๋ถ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค. ๋น๋ ์ค์๋ง ํ์ํ ์ ์์ต๋๋ค. docker run
๋๋ ๋ ๋ชจ๋๋ฅผ ํตํด ์คํํ๋ ๋์์๋ง ํ์ํ ์ ์์ต๋๋ค.
ํ์ํ ๊ฒฝ์ฐ ๋น๋์์ ๋จ๊ณ(๋๋ ๊ทธ ์ด์)์ ๋ํด ๋ ๋ง์ ๊ถํ์ด ํ์ํ ์์ ์ ์ํํ ์ ์์ด์ผ ํฉ๋๋ค. ํ๋ก์ ํธ์ ์ด๊ฒ์ด ํ์ํ๊ณ Dockerfile์ ์ ๋ฐ์ ๋น๋๋ฅผ ํธ์ถํ๊ณ ๊ถํ ์๋ ๋ชจ๋์์ ๊ณ์ ๋น๋ํ๋ ์ ธ ์คํฌ๋ฆฝํธ๋ก ๋ณํํด์ผ ํ์ผ๋ฏ๋ก "๊ถํ ์๋" ๋น๋๊ฐ ์์ผ๋ฉด ์ ์ฉํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ sysctl์ ์ฌ์ฉํ์ฌ ์ผ๋ถ ์ค์ ์ ๋ณ๊ฒฝํ ์ ์๋๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ๊ถํ ๋ชจ๋๋ก ๋๊น์ง ๋ด๋ ค๊ฐ์๋ ์๋ฉ๋๋ค. ์ด๋ ์ด๋ฏธ์ง ๊ตฌ์ฑ์ ํตํด ๋๋ docker run
์ ๋ฌํ ๋ช
๋ น์ค ์ธ์๋ฅผ ํตํด ์ํํด์ผ ํฉ๋๋ค.
์ค๋ฅธ์ชฝ. @orikremer , Vertica DB์ WebSphere MQ๊ฐ ๋ณ๊ฒฝํ๋ ค๊ณ ํ๋ ๋งค๊ฐ๋ณ์์ ๋ํ ์ธ๋ถ ์ ๋ณด๊ฐ ์์ต๋๊น?
/sys ๋๋ /proc์ ์๋ ํญ๋ชฉ์ธ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ข์ ์๋ฃจ์ ์ ๊ถํ ์๋ ๋ชจ๋๋ก ์ ํํ๋ ๋์ (๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ง๋์ง ์๊ธฐ ๋๋ฌธ์) ๋์ ๊ฑฐ๊ธฐ์ ์ผ๋ถ ๋ชจํ์ ๋ฐฐ์นํ๋ ๊ฒ์ ๋๋ค.
์ฅ๊ธฐ์ ์ผ๋ก ๋ชจ์ ํ์ผ ์์คํ ์ ๋ณ๊ฒฝ ์ฌํญ์ ์บก์ฒํ๊ณ Dockerfile ์ง์๋ฌธ์ผ๋ก ๋ณํํ์ฌ ๋ฐํ์์ "์ด ์ปจํ ์ด๋์๋ ์ด๋ฌํ ์กฐ์ ์ด ํ์ํฉ๋๋ค"๋ผ๊ณ ์ง์ํ ์ ์์ต๋๋ค.
@jpetazzo ์ด๋ฏธ์ง๋ฅผ ๋ง๋ ์ง ๋ฉฐ์น ์ด ์ง๋ฌ์ต๋๋ค. AFAIR Vertica๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ์ง ์๊ณ ๋ ๋ค ์ต๋ ์ด๋ฆฐ ํ์ผ์ ๋ณ๊ฒฝํ๋ ค๊ณ ํ๋ค๊ณ ๋ถํํ์ต๋๋ค.
Dockerfile์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋ง๋ค๊ณ ๋ค์ ๋ณด๊ณ ํ๊ฒ ์ต๋๋ค.
๊ด๋ จ๋ ๋ฌธ์ #2080์ ์ฃผ๋ชฉํ์ญ์์ค.
@jpetazzo๊ฐ -privileged ์์ด ์ด๋ฏธ์ง
ํด๋น ์ฌ์ฉ์๋ก ์ ํํ๋ ค๊ณ ํ ๋
์ค์์น๋ ์ด๋ป๊ฒ ๋ฐ์ํฉ๋๊น? -privileged
๊ฐ ์ฌ์ฉ์ ์ ํ์ ์ด๋ป๊ฒ ๋์์ด ๋๋์ง ์ดํด๊ฐ ๋์ง ์์ต๋๋ค. ๋๋ ์๋ง๋ ์ฌ๊ธฐ์ ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์ ๊ฒ์
๋๋ค :-)
์ต๋ ์ด๋ฆฐ ํ์ผ
๋ด๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด ์์ง ์ค์น ํ๋ก๊ทธ๋จ์ ์ด๋ฆฐ ํ์ผ์ ์ต๋ ์๋ฅผ ๋งค์ฐ ๋์ ์๋ก ์ค์ ํ๋ ค๊ณ ์๋ํ๋ฉฐ Docker๊ฐ -privileged
ํ๋๊ทธ๋ก ๊ทธ๋ ๊ฒ ๋์ ์๋ก ์์๋๊ฑฐ๋ _๋๋_ ์๋ํ๋ ๊ฒฝ์ฐ์๋ง ์๋ํฉ๋๋ค. ์ค๋ฅธ์ชฝ?
์ฌ์ฉ์ ์ ํ - su dbadmin
๋ ํด๋น ์ค๋ฅ์ ํจ๊ป ์คํจํฉ๋๋ค.
๋๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌํํ ์ ์์๋ค:
su testuser
์๋ --> "์ธ์
์ ์ด ์ ์์"๊ณผ ํจ๊ป ์คํจํด์ผ ํฉ๋๋ค.su testuser
๊ฐ ์ ๋๋ก ์๋ํฉ๋๋ค.์ต๋ ์ด๋ฆฐ ํ์ผ - ๋ง์ต๋๋ค. ์ค์น ํ๋ก๊ทธ๋จ์ด ํธ์คํธ๋ณด๋ค ๋์ ์ซ์๋ก ์ค์ ํ๋ ค๊ณ ํฉ๋๋ค. ํธ์คํธ ์ค์ ์ ๋๋ฆฌ๊ฑฐ๋ -privileged๋ฅผ ์์ํด์ผ๋ง ์ด ์์ ์ด ์ํ๋ฉ๋๋ค.
๋ฐฉ๊ธ ๋ค์ Dockerfile๋ก ์๋ํ์ต๋๋ค.
FROM ubuntu
RUN useradd testuser
RUN echo testuser - nice 0 > /etc/security/limits.conf
CMD su testuser
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ ์๋ํฉ๋๋ค. ์ฌ์ฉ์ค์ธ ์ด๋ฏธ์ง์ ์ ํํ ์ด๋ฆ์ ๋ฌด์์
๋๊น?
( centos-6.4-x86_64
์๋ํ๋๋ฐ ๋ชป ๋ฝ๋ ๊ฒ ๊ฐ์์!)
@lukewpatterson ์ปจํ ์ด๋ ๋ด๋ถ์์ ๋ฃจํ ํ์ผ ์์คํ ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ๊ณต์ ํ ์ ์์ต๋๊น?
@jpetazzo ์ด ๋์ปค ํ์ผ ์คํ
FROM backjlack/centos-6.4-x86_64
RUN useradd testuser
RUN echo 'testuser - nice 0' >> /etc/security/limits.conf
RUN su testuser
RUN echo 'test' > ~/test.txt
์คํจ:
ori<strong i="10">@ubuntu</strong>:~/su_test$ sudo docker build .
Uploading context 10240 bytes
Step 1 : FROM backjlack/centos-6.4-x86_64
---> b1343935b9e5
Step 2 : RUN useradd testuser
---> Running in b41d9aa2be1b
---> 2ff05b54e806
Step 3 : RUN echo 'testuser - nice 0' >> /etc/security/limits.conf
---> Running in e83291fafc66
---> 03b85baf140a
Step 4 : RUN su testuser
---> Running in c289f6e5f3f4
could not open session
Error build: The command [/bin/sh -c su testuser] returned a non-zero code: 1
The command [/bin/sh -c su testuser] returned a non-zero code: 1
ori<strong i="11">@ubuntu</strong>:~/su_test$
I๋ (์ถ๊ฐํ์ฌ PAM ๋ชจ๋ ๋๋ฒ๊น
์จ debug
๋ฐ๋ pam_limits.so
๋ผ์ธ /etc/pam.d/system-auth
์ค์น) syslog
ํ๋ ค๊ณ su
๋ค์, /var/log/secure
์์ ์ฐพ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Oct 7 14:12:23 8be1e7bc5590 su: pam_limits(su:session): '/etc/security/limits.conf'์์ ์ค์ ์ฝ๊ธฐ
Oct 7 14:12:23 8be1e7bc5590 su: pam_limits(su:session): process_limit: ์ฒ๋ฆฌ ์ค - ์ฌ์ฉ์์๊ฒ ์ข์ 0
Oct 7 14:12:23 8be1e7bc5590 su: pam_limits(su:session): '/etc/security/limits.d/90-nproc.conf'์์ ์ค์ ์ฝ๊ธฐ
Oct 7 14:12:23 8be1e7bc5590 su: pam_limits(su:session): process_limit: DEFAULT์ ๋ํ soft nproc 1024 ์ฒ๋ฆฌ ์ค
Oct 7 14:12:23 8be1e7bc5590 su: pam_limits(su:session): 'nice'์ ๋ํ ์ ํ์ ์ค์ ํ ์ ์์: ์์
์ด ํ์ฉ๋์ง ์์
๊ทธ๋ฐ ๋ค์ strace
su
ํ๋ก์ธ์ค๋ฅผ
setrlimit(RLIMIT_NICE, {rlim_cur=20, rlim_max=20}) = -1 EPERM (Operation not permitted)
์ด๊ฒ์ ์ฐจ๋ก๋ก pam_limits
๋ชจ๋์ด ์คํจ๋ฅผ ๋ณด๊ณ ํ๋๋ก ํฉ๋๋ค. ์ด๊ฒ์ su
๊ฐ ๊ณ์๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
ํฅ๋ฏธ๋กญ๊ฒ๋ Ubuntu์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก su
์ ๋ํด pam_limits
๊ฐ ํ์ฑํ๋์ด ์์ง ์์ต๋๋ค. ํ์ฑํํ๋๋ผ๋ setrlimit
ํธ์ถ์ ์คํจํ์ง๋ง su
๋ ๊ณ์๋๊ณ ์ด์จ๋ ์๋ํฉ๋๋ค.
๊ฐ์ฌ ์ฝ๋์ ๊ด๋ จ์ด ์์ ์ ์์ต๋๋ค. ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ด์ setrlimit
์คํจํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ปจํ
์ด๋์ sys_resource
๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ข
๋ฅ์ ์ ํ์ ๋์ด๋ ๋ฐ ํ์ํฉ๋๋ค.
๋๋ ๊ทธ limits.conf
์ง์๋ฌธ์ ์ฃผ์ ์ฒ๋ฆฌํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
(๊ทธ๋ฐ๋ฐ limits.conf
์ง์ ํญ๋ชฉ์ ์ถ๊ฐํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค. limits.d
์ ๋ณ๋ ํ์ผ๋ก ์ด๋ํด์ผ ํฉ๋๋ค.)
์ฐธ๊ณ : Docker์ ์ด๋ฆฐ ํ์ผ ์ ์ ํ์ ์ด๋ฏธ ๋๋ ธ์ผ๋ฏ๋ก ์ต๋ ์ฐ์ ์์ ์ ํ๋ ๋์ผ ์ ์์ต๋๋ค. ๊ทธ๊ฒ๋ ์๋ํด์ผํฉ๋๋ค!
์ด๊ฒ ๋์์ด ๋๊ธธ ๋ฐ๋๋ค.
ํด๋น Dockerfile์๋ ๋ค์ ์ค์ด ์์ต๋๋ค.
RUN su testuser
์ด๊ฒ๊ณผ ํจ๊ป ๊ฐ ๋ช
๋ น์ด ์์ต๋๋ค (๊ทธ๋ฆฌ๊ณ ํ์ RUN ๋ช
๋ น์ ๊ฒฐ๊ณผ ์์ ์ ์ฉํ์ง ์์). ๋ฐ๋ผ์ ์์ ์ด๋ ค๊ณ ์๋ํ๋ ๋ฐ ์ค์ ๋ก ์คํจํ๊ณ ๊ทธ๋ ๊ฒํ๋ ๊ฒ์ด ์๋ฏธ๊ฐ์๋ ๋ํ ํ์ด ์๋ ๊ฒฝ์ฐ ๋๋ผ์ง ์์ ๊ฒ์
๋๋ค. ( docker build
๋ ๋ํ์ ํ๋ก์ธ์ค๊ฐ ์๋๊ธฐ ๋๋ฌธ์). ์ง๊ธ์ ํ์ธํ ์๊ฐ์ด ์์ง๋ง su
์ ์ ๋ฌ๋๋ ์ค์ ๋ช
๋ น์ผ๋ก ์๋ํด ๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค.
@jpetazzo ์์ธํ ์ค๋ช ๊ฐ์ฌํฉ๋๋ค. Docker์ ์ต๋ ์ฐ์ ์์๋ฅผ ๋์ด๊ณ ๋์์ด๋๋์ง ํ์ธํ๊ฒ ์ต๋๋ค.
(๊ทธ๋ฐ๋ฐ limits.conf์ ์ง์ ์ถ๊ฐํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค. limits.d์ ์๋ ๋ณ๋์ ํ์ผ๋ก ์ด๋ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.)
๋์ํฉ๋๋ค. ํ์ง๋ง ์ด๊ฒ์ด Vertica ์ค์น ํ๋ก๊ทธ๋จ ์ฝ๋์ด๋ฏ๋ก ์ด๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํฉ๋๋ค.
@tianon ๋ํํ ์ ธ(/bin/bash)์์ ์คํํด๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
์ฃ์กํฉ๋๋ค. ์ฌ์ ํ ์๋ํด ๋ณผ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
Dockerfile์์ ๊ทธ๋ค์ง ์๋ฏธ๊ฐ ์๋ ์ค์ ๋ํ ์์ ์ ์ฌ์ ํ โโ์ ์ฉ๋ฉ๋๋ค. ์๋ง๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ๋ ์ํ์ ๊ฒ์ ๋๋ค(ํ๊ณ ๋ฌธ์ ๋ฅผ ํ์ ํ ํ).
RUN su testuser -c 'echo test > ~/test.txt'
@tianon ๋ค ๋ง์ด ๋ง์, ๋ณ๋ก ๋ง์ด ์ ๋ผ. ๊ทธ๊ฒ์ ๋จ์ง su ์์ฒด๊ฐ ์คํจํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ๊ฒ์ด์์ต๋๋ค.
์๋ ๋
ผ์๋ก ๋์๊ฐ๋ ค๋ฉด: ๋ณด์ ๊ด์ ์์ (๊ทธ๋ฆฌ๊ณ ์ ์ฉํฉ๋๋ค!) ๋น๋ ํ๋ก์ธ์ค์์ setfcap
๋ฐ mknod
๊ธฐ๋ฅ์ ํ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค(๊ทธ๋ฆฌ๊ณ ์๋ง๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ๋ฐ ์ปจํ
์ด๋ ์คํ์์). ์). ๋๊ตฌ๋ ์ง ๊ทธ๋ก ์ธํด ๋ฐ์ํ ์์๋ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
@jpetazzo ์ ๋ฐ๋! ๊ทธ๊ฒ์ ๋ด๊ฐ ๊ฒช๊ณ ์๋ ๋ง์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ ๋๋ค. ์ค์ ๊ธฐ๊ณ์ฒ๋ผ ์๋ํ๊ฑฐ๋ ๋ณด์ด๋ Docker ์ปจํ ์ด๋๋ฅผ ์คํํ๋ ค๋ ์ฌ๋๋ค์๊ฒ ์ด๊ฒ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ข์์! ๊ด์ฐฎ์ผ์๋ค๋ฉด #2191, "๋ชจ๋ ์ปจํ ์ด๋์์ mknod ๋ฐ setfcap ๊ธฐ๋ฅ ํ์ฑํ"๋ฅผ ์ํด ์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ๊ฒ ์ต๋๋ค :-)
์ฐ๋ฆฌ๋ ๊ทธ๋ฌํ ์๋๋ฆฌ์ค์ ๋ํด ์๊ณ ์์ต๋๊น?
2013๋ 10์ 13์ผ ์ผ์์ผ ์คํ 12์ 22๋ถ์ unclejack [email protected]์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ์ต๋๋ค.
2191 https://github.com/dotcloud/docker/issues/2191 ํด๊ฒฐ๋์ง ์์ต๋๋ค
docker ๋น๋ ๊ถํ์ด ํ์ํ ๋ชจ๋ ์๋๋ฆฌ์ค์ ๋ํ ๋ฌธ์ ์ ๋๋ค.
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/dotcloud/docker/issues/1916#issuecomment -26224788์์ ํ์ธํ์ธ์.
.
@jpetazzo https://twitter.com/jpetazzo
์ต์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ:
http://jpetazzo.github.io/2013/10/06/policy-rc-d-do-not-start-services-automatically/
@jpetazzo Dockerfile์ ์ฌ์ฉํ์ฌ ์ด์ ์ฒด์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ค๋ ๊ฒฝ์ฐ์ ํ์ํฉ๋๋ค.
์์ ํ๋ค๊ฐ ์ค์๋ก ๋๊ธ์ ์ง์ ์ต๋๋ค.
Dockerfile์์ ๋ชจ๋ ์์ ์ ์ํํ์ง ์๊ณ ์ด๊ฒ์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง ์ดํด๋ณด์ญ์์ค.
from ubuntu:12.04
run apt-get update
[... a few more run commands]
add build.sh /root/build.sh
๋น๋.sh
docker build -t mybuild .
docker run -i -t -privileged -cidfile mybuild.cid mybuild /root/build.sh
buildcid=`cat mybuild.cid`
rm mybuild.cid
docker commit $buildcid mybuild-final
์ด๊ฒ์ ๋ด๊ฐ Dockerfile ๋๋ docker build -privileged
์ runp
๊ฐ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ๊ฐ์ ํ๋ฏ๋ก Dockerfile์ ์ธ๋ชจ์๊ฒ ๋ง๋ค๊ณ Dockerfile๊ณผ ์ ์ฌํ ๊ธฐ๋ฅ์ ๋ณต์ ํ๋ ๋๊ตฌ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
๋ถ๋ช
ํ Dockerfile์ runp
๋๋ docker build -privileged
์ ํจ๊ป ํจ์ฌ ๋ ์ ์ฉํฉ๋๋ค.
์คํ ์:
from ubuntu:12.04
run apt-get update
[... a few more run commands]
add build.sh /root/build.sh
runp /root/build.sh
docker build -privileged
์:
from ubuntu:12.04
run apt-get update
[... a few more run commands]
add build.sh /root/build.sh
run /root/build.sh
@unclejack : ์ฃ์กํฉ๋๋ค. ์ ์ง๋ฌธ์ด ์ ํํ์ง ์์์ต๋๋ค!
๋ด๊ฐ ์๋ฏธํ ๊ฒ์ "์ ํํ (mknod ๋ฐ setfcap ์์) ์ด๋ค ๊ถํ์ด ํ์ํฉ๋๊น?"์์ต๋๋ค.
@jpetazzo ๋งํ๊ธฐ ์ด๋ ต์ต๋๋ค. ํ์ํ ๊ฒ์ด ๋ฌด์์ธ์ง ์์๋ด๊ธฐ ์ํด ์ด๋ป๊ฒ๋ ๊ฐ์ฌํด์ผ ํ ๊ฒ์ ๋๋ค. ๋ฃจํ๋ฐฑ ๋ง์ดํธ ๋ธ๋ก ์ฅ์น ๋ฐ ๊ธฐํ ๋ช ๊ฐ์ง๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ์์คํ ๋ง์ดํธ.
์ด๋ฏธ์ง ๋น๋์ ๊ด๋ จํ์ฌ ์ต์ํ ์ธ ๊ฐ์ง ๊ฐ๋ณ ์๊ตฌ ์ฌํญ์ด ์์ต๋๋ค. docker build
๋์ ํ์ํ ๊ถํ, ๋์ปค๋ก ์ปจํ
์ด๋๋ฅผ ์คํํ ๋ ํ์ํ ๊ถํ ๋ฐ ๋น๋, ์คํ ๋๋ ๋ ๋ค(์: sysctls ๋ฐ ๊ธฐํ) ๋์ ํ๋ก์ธ์ค์ ๋ํ ๋ฐํ์ ์๊ตฌ ์ฌํญ .
docker build -privileged
(๋๋ ์ค์ ๋ก ํ์ํ ๋ช
๋ น์ ๋ํด์๋ง -privileged ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด runp
)๊ฐ ์ ์ฉํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์, ๋ง์ดํธ๋ ํ์คํ ํฐ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ๋งค์ฐ ์ ํจํ ์ฌ์ฉ ์ฌ๋ก์ด๋ฉฐ ์ฐ๋ฆฌ๋ _์๋ง๋_ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์ ์ด๋ฅผ ํ์ฉํ๊ณ ์ถ์ง ์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ๋ค์ ์ด๊ฒ ์ต๋๋ค.
@jpetazzo RE: PAM ๋ชจ๋(Vertica๋ ์ค์น ์ค์ ๋๋ค) lxc.cap.drop์์ sys_resource๋ฅผ ๊ฐ์ ธ์จ ํ docker๋ฅผ ๋ค์ ์ปดํ์ผํ๋๋ก ์ ์ํ์๊ฒ ์ต๋๊น?
์ด๋ฌํ ์ ํ ์ค ์ผ๋ถ๋ docker.conf ํ์ผ์ ํตํด ์ค์ ํ ์ ์์ต๋๊น?
Docker ์์ฒด๊ฐ ์ ํ๋ ๊ธฐ๋ฅ ์งํฉ์์ ์คํ๋ ์ ์์ผ๋ฏ๋ก Docker๊ฐ ํด๋น ์ปจํ ์ด๋์ ์์ํ๋ ๋ฐ ์ด๋ฌํ ๊ถํ์ ์ฌ์ฉํ ์ ์์ ์ ์๋ค๋ ์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ด๋ ์ค์ฒฉ๋ Docker ์๋๋ฆฌ์ค์์ #2080 ํ ์ง๋ฅผ ๋ฐํํด์ผ ํ๋ ๊ฒฝ์ฐ์ ํนํ ํด๋น๋ฉ๋๋ค. ์ด๋ ๊ถํ์ด ์๋ ์ค์ฒฉ๋ Docker๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
์ด๊ฒ์ 'runp' ๋๋ '-priviledged'์ ๊ฐ์ ์๋ฃจ์ ์ด ๋ชจ๋ Docker ํ๊ฒฝ์์ ์ฑ๊ณต์ ๋ณด์ฅํ์ง ์์ ์ ์๋ค๋ ์ ์ ์ ์ธํ๊ณ ๋ ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ๊ทธ๋ฌํ ๋ช ๋ น์ ์ถ๊ฐํ๊ณ ๋ฌธ์ํํ ๋ ์ด๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
@ramarnat @jpetazzo Vertica ์ค์น ๋ฐ ์ข์ ์์ค ๋ฌธ์ ์ ๋ํ ๋ฃจํ๋ฅผ ๋ซ์ผ๋ ค๋ฉด,
docker.conf์์ ๋ฉ์ง ์ ํ์ ์ค์ ํ๋ ค๊ณ ์๋ํ์ง๋ง ์๋ํ์ง ์์ bash ๊ถํ์ ์คํํ๊ณ ์๋์ผ๋ก ์ค์นํด์ผ ํ์ต๋๋ค.
@orikremer @jpetazzo lxc_template.go์์ sys_resource๋ฅผ ์ ๊ฑฐํ๊ณ docker๋ฅผ ๋ค์ ์ปดํ์ผํ์ฌ ์ค์น๋ฅผ ์คํํ ์ ์์์ต๋๋ค. ํ ๋ฆฌํ์คํธ๋ฅผ ๊ณต๊ฐํ ์๋ ์์ง๋ง lxc ์ค์ ์์ ์ด๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ด ๋ณด์์ ๋ฏธ์น๋ ์ํฅ์ ๋ํด ๋ค๋ฅธ ์ฌ๋๋ค์ ์๊ฒฌ์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
@ramarnat : ์๋๋ฆฌ์ค์ ๋ฐ๋ผ ์ด๋ค ์ฌ๋๋ค์ sys_resource๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ด ๊ด์ฐฎ๋ค๊ณ ์๊ฐํ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ ๋๋ค.
๊ธฐ๋ณธ ์ ํ์ ๋ ๋์ ๊ฒ์ผ๋ก ๋๋ฆด ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค(ํ์ผ ์ค๋ช ์๋ Elastic Search์์๋ ๋ฌธ์ ์ ๋๋ค). ์ด๊ฒ์ "์ต์ํ Docker ๋ฐํ์์ด 1,000,000๊ฐ์ ํ์ผ ์ค๋ช ์๋ฅผ ์ฒ๋ฆฌํ ์ ์์ด์ผ ํ๋ค"๊ณ ์ฃผ์ฅํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. Docker๊ฐ ์์๋ ๋ ์ ํ์ ์ฌ๋ฆด ์ ์๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ๋ฐํํ๊ณ ๊ณ์ ์งํํฉ๋๋ค(๋ฉ๋ชจ๋ฆฌ/์ค์ ์ปจํธ๋กค๋ฌ ๊ทธ๋ฃน์ ๋ํด ์ํํ๋ ๊ฒ์ฒ๋ผ).
์ด๊ฒ์ ๋ง์ดํธ/๋ฃจํ ์๋๋ฆฌ์ค๋ฅผ ์์ ํ์ง ์์ง๋ง(์ ๋ ์ฌ์ ํ ์ด ์๋๋ฆฌ์ค์์ ์ ์ ์๊ณ ์์ต๋๋ค).
@jpetazzo๋ lxc_template.go ์ ํ๋ ์ฝ๋ฉ๋ ๊ฐ์ ์ฌ์ ์ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ ์ ์์ต๋๋ค. -lxc_conf ๋ช ๋ น์ค์ด ์๋ ์๋๋ฆฌ์ค์๋ ์ด๋ฏธ ๋ฌด์ธ๊ฐ๊ฐ ์์ง๋ง ์ด๋ฌํ lxc config ์ง์์์ .drop ํน์ฑ์๋ ์๋ํ์ง ์์ต๋๋ค. ์๋ํ์ต๋๋ค!
๊ธ์์, ๊ทธ๊ฒ์ ๊ฐ๋ฅ์ฑ์ด ์์ง๋ง ๋ค๋ฅธ ์ปจํ ์ด๋ํ ์์คํ ๊ฐ์ ๋ฏธ๋์ ํธํ์ฑ์ ๊นจ๋ ์ข์ ๋ฐฉ๋ฒ์ด๊ธฐ๋ ํฉ๋๋ค :-) ๋ ๋์ ๊ฒ์ ์ฐพ์ ์ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋นํน๊ถ ๋ชจ๋์์ /dev/loop*๋ฅผ ํ์ดํธ๋ฆฌ์คํธ์ ์ถ๊ฐํ ์ ์์ต๋๊น? ๋ฌธ์ ๋ ๋ค๋ฅธ ์ปจํ ์ด๋์ ๋ฃจํ ๋ง์ดํธ ํ์ผ ๋๋ ํธ์คํธ์ ํ์ผ์ ์ก์ธ์คํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
@solomonstre
@๋์ปค
2013๋
10์ 17์ผ ๋ชฉ์์ผ ์คํ 6:09 Jรฉrรดme Petazzoni
[email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๊ธ์์, ๊ทธ๊ฒ์ ๊ฐ๋ฅ์ฑ์ด ์์ง๋ง ๋ค๋ฅธ ์ปจํ ์ด๋ํ ์์คํ ๊ฐ์ ๋ฏธ๋์ ํธํ์ฑ์ ๊นจ๋ ์ข์ ๋ฐฉ๋ฒ์ด๊ธฐ๋ ํฉ๋๋ค :-) ๋ ๋์ ๊ฒ์ ์ฐพ์ ์ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/dotcloud/docker/issues/1916#issuecomment -26565782
@jpetazzo ๊ทธ๊ฑด ์ฌ์ค์ด์ง๋ง ํ์ฉ๋๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ
@solomonstre ์์ ์ docker build
๊ฐ ํน๊ถ ๋ชจ๋์์ ๋น๋๋๋๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํ๋ค๋ ๊ฒ์
๋๋ค. /dev/loop*์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉํด๋ ๋ด ํน์ ์ฌ์ฉ ์ฌ๋ก์๋ ๋์์ด ๋์ง ์์ต๋๋ค.
@solomonstre : /dev/loop์ ํ์ดํธ๋ฆฌ์คํธ์ ์ถ๊ฐํ๋ ๊ฒ์ IMHO, ํฐ ๋ฌธ์ ๊ฐ ์๋๋๋ค. DM ๋ถ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ ๋ํ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค(DM ๋ถ๊ธฐ์ ๊ธฐ๋ณธ ๋์์ ๋ฃจํ ์ฅ์น๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฅํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค) ์์์ฅ).
์ผ๋ถ ๋น๋์๋ ๋ฃจํ ์ฅ์น, ๋ง์ดํธ ๋ฐ ๊ธฐํ ์ฌํญ์ด ํ์ํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ์ต์ ์ ๊ฒํ ํด ๋ณด๊ฒ ์ต๋๋ค.
docker build -privileged
์ฌ๋ฐ๋ฅธ ์๋ฃจ์
์ด docker build
-privileged`๋ฅผ ํ์ฉํ๋ ๊ฒ๊ณผ ๋์์ ์ต์
3์ ํฌ๋ช
ํ๊ฒ ๊ตฌํํ ์ ์๋ ํํฌ์ ๋ํด ์๊ฐํ๋ ๊ฒ์ด ๋ง๋์ง ๊ถ๊ธํฉ๋๋ค. ๋ด๊ฐ "๋์ปค ๋น๋ ๊ณต๊ธ์"๋ผ๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ๊ถํ ์๋ ๋น๋๋ฅผ ์์ฒญํ๋ฉด ์๋๋ฐ์ค ํ๊ฒฝ ๋ด์์ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์คํํ ์ ์๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ฝ์
ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์ฌ๋ฌ๋ถ์ ์ด๋ป๊ฒ ์๊ฐํ์ธ์?
@backjlack , ์ผ๋จ ๊ตฌ์ถ๋ ์ปจํ
์ด๋๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์ฌ์ญค๋ด๋ ๋ ๊น์? ๋ญ
์ ํํ "๋์ปค ์คํ"ํ๋ฉด ๋ฐ์ํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฌด์์
๋๊น? ๋จ์ง
์ด์ ๋ํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ดํดํ๋ ค๊ณ ํฉ๋๋ค.
2013๋
10์ 18์ผ ๊ธ์์ผ ์ค์ 9์ 59๋ถ, Jรฉrรดme Petazzoni
์๋ฆผ@github.com์์ฑ :
@solomonstre https://github.com/solomonstre : /dev/loop์ ํ์ดํธ๋ฆฌ์คํธ์ ์ถ๊ฐํ๋ ๊ฒ์,
IMHO๋ DM ๋ถ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๊ธฐ/์ฐ๊ธฐ๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ ๋ ๊ธ๋ฌผ์ ๋๋ค.
๋ชจ๋ ๊ฒ์ ๋ํ ์ก์ธ์ค(DM ๋ถ๊ธฐ์ ๊ธฐ๋ณธ ๋์์
ํ์ ์ ์ฅํ๊ธฐ ์ํ ๋ฃจํ ์ฅ์น).์ผ๋ถ ๋น๋์๋ ๋ฃจํ ์ฅ์น, ๋ง์ดํธ ๋ฐ ๊ธฐํ
๊ฒ๋ค. ์ต์ ์ ๊ฒํ ํด ๋ณด๊ฒ ์ต๋๋ค.
- docker build -privileged ํธ๋ฆฌํ์ง๋ง ๋ค์ ์ฌ์ด์ ์ ์ ๊ทธ๋ฆฝ๋๋ค.
"์ผ๋ฐ ๋น๋" ๋ฐ "ํน๊ถ ๋น๋". ๋ง์ฝ ๋น์ ์ด ๋งค์ฐ
๊ถํ ์๋ ๋น๋๊ฐ ํ์ํ ์ ์ฉํ ์ด๋ฏธ์ง,
๊ณต๊ณต ๊ฑด์ถ์ ์์ ๊ทธ๊ฒ์ ๊ตฌ์ถํ์ญ์์ค. ์๋ฅผ ๋ค์ด ๋๊ตฐ๊ฐ๊ฐ ์๋ํ ์๋น์ค๋ฅผ ์์ํ๋ ๊ฒฝ์ฐ
๋น๋, ๊ทธ๋ค์ ์๋ง๋ ํน๊ถ ๋น๋๋ฅผ ์ ๊ณตํ์ง ์์ ๊ฒ์ ๋๋ค (๋๋ ๊ทธ๋ค์
์ถ๊ฐ ๋ณดํธ ์ฅ์น๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด).- ๋น๋์์ ์ฝ๊ฐ์ ๊ถํ ์ํ ์ด๊ฒ์ (์ ์ด๋)
cap_sysadmin ํ์ฑํ(์ด๊ฒ์ ํธ์ง์ฆ์ ์ฝ๊ฐ ๋จ๊ฒ ๋ง๋ญ๋๋ค), ๊ทธ๋ฆฌ๊ณ ์๋ง๋
๊ฐ ๋น๋์๊ฒ ํ๋ ๋๋ ๋ ๊ฐ์ ๋ฃจํ ์ฅ์น๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๊ฒ์ ์ด๊ณ๋ฅผ ์ ํํ ๊ฒ์ ๋๋ค
๋ณ๋ ฌ๋ก ์คํ๋๋ ๋น๋์ ์ ํ์ง๋ง ์ดํ๋ก ํฐ ๋ฌธ์ ๋ ์๋๋ค
๋น๋๋ ๋น ๋ฅด๊ณ ๋ ์ค์ํ๊ฒ๋ ํ์ฑ ํ๋ก์ธ์ค์ฌ์ผ ํฉ๋๋ค.
๊ธฐ๊ณ๊ฐ ์๋ ํ ๋ณ๋ ฌ๋ก ์คํ ์ค์ธ ๋น๋๊ฐ 50๊ฐ ์๋ ๊ฒฝ์ฐ IE
kickass I/O ํ์ ์์คํ ์ ์ฌ์ฉํ๋ฉด ํด๋น ๋น๋๊ฐ ๋ง์ด ์งํ๋์ง ์์ต๋๋ค.- ๋ค๋ฅธ ๊ฐ์ํ/๊ฒฉ๋ฆฌ ๊ณ์ธต ๋ด์์ ๋น๋๋ฅผ ๋ํํฉ๋๋ค.
Docker ๋ด์์ ์ง์ ๋น๋๋ฅผ ์คํํ๋ ๋์ ๋ค์๊ณผ ๊ฐ์ด ์คํํ์ญ์์ค.
QEMU-in -Docker ๋๋ UML-in-Docker. ์ด๊ฒ์ Docker์ ๋ฉ์ง ์๋ฃจ์ ์ ๋๋ค.
์ถ๊ฐ ์์ ์ด ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์ ๊ด์ ; ์ด๊ฒ์ ๊ฐ๋ํ ์ฌ๋์ด๋ค
DOcker ์ฌ์ฉ์ ๊ด์ ์ ์๋ฃจ์
๋ณต์ก์ฑ์ ๋ ๋ค๋ฅธ ๊ณ์ธต.docker build-privileged`๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์๋ฃจ์ ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
๋์์ ํฌ๋ช ํ๊ฒ ํ์ฉํ๋ ํํฌ์ ๋ํด ์๊ฐํ์ญ์์ค.
์ต์ 3์ ๊ตฌํ. ๋ด๊ฐ "๋์ปค ๋น๋ ๊ณต๊ธ์"๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
๋๊ตฐ๊ฐ ๊ถํ์ด ์๋ ๋น๋๋ฅผ ์์ฒญํ๋ฉด ์ฝ์ ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์๋๋ฐ์ค ๋ด์์ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์คํํ ์ด๋๊ฐ
ํ๊ฒฝ(QEMU ๋ฐ UML์ ๋ช ๋ฐฑํ ํ๋ณด์ด์ง๋ง ๋ค๋ฅธ ๊ฒ๋ค์ ์๋ํ ์ ์์ต๋๋ค.
๋; ๊ทธ๊ฒ๋ค์ ๋จ์ง ํธ๋ฆฌํ ์์ผ ๋ฟ์ ๋๋ค).์ฌ๋ฌ๋ถ์ ์ด๋ป๊ฒ ์๊ฐํ์ธ์?
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/dotcloud/docker/issues/1916#issuecomment -26612009์์ ํ์ธํ์ธ์.
.
+1 - ํจ์ฆ๋ฅผ ์ค์นํ๋ mknode ๊ธฐ๋ฅ(S3 ๋ฒํท ํ์ฌ์ฉ) ๋๋ Dockerfiles์์ ๊ถํ ์๋ ์คํ์ ์คํํ๋ ๊ธฐ๋ฅ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ์ต๊ณ ์ ์๋ฃจ์ ์ด ๋ฌด์์ธ์ง ์์ง ํ์คํ์ง ์์ต๋๋ค.
+1. ์ด ๋ฌธ์ ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
+1
2013๋
11์ 17์ผ ์คํ 11์ 31๋ถ์ "yukw777" [email protected]์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
+1. ์ด ๋ฌธ์ ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/dotcloud/docker/issues/1916#issuecomment -28676216์์ ํ์ธํ์ธ์.
.
๋ํ Java๋ฅผ ์ค์นํ๋ ค๊ณ ํ ๋ ํจ์ฆ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ผ๋ฉฐ ์๋ฃจ์ ์ ๊ด์ฌ์ด ์์ต๋๋ค. https://gist.github.com/henrik-muehe/6155333์์ ์ ์ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ํ์ง๋ง Raspberry Pi์ ๋์ปค์์๋ ์๋ํ์ง ์์ต๋๋ค.
@jpetazzo : -privileged ํ๋๊ทธ๋ฅผ ๊ตฌํํ๋ ๋์์ ์ฅ๊ธฐ์ ์ธ ์๋ฃจ์ ์ ๋ชจ์ํ๋ ์ ๋ฐ์ ์ธ ์ ๋ต์ด ๋ง์์ ๋ญ๋๋ค. ์ด๋ฅผ ์ํด ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํ ํ ๋ฆฌํ์คํธ๋ฅผ ์ ์ถํ์ต๋๋ค. ํ์ฌ๋ก์๋ ์ด ์ค๋ ๋์ ์๋ถ๋ถ์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ "RUNP" ๋ช ๋ น์ ๊ตฌํํ์ง ์์ต๋๋ค.
(์ฌ๋๋ค์ด ์ฌ๊ธฐ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์์ผ๋ฏ๋ก "๊ต์ฐจ ๊ฒ์"ํ๊ฒ ์ต๋๋ค.)
์ค์ ๋ก ์ฅ์น ํ์ผ์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ(ํ์ง๋ง fuse ํจํค์ง์ ๊ฒฝ์ฐ์ ๊ฐ์ด post-inst ์คํฌ๋ฆฝํธ์ ์ผ๋ถ์ผ ๋ฟ์ ๋๋ค) ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
fakeroot apt-get ...
๋๋:
dpkg-divert --local --rename --add /sbin/mknod && ln -s /bin/true /sbin/mknod`
๋๋ ๊ทธ๊ฒ์ด ์ข์ ์๋๋ผ๊ณ ํ์ ํ์ง๋ง ์ฒซ ๋ฒ์งธ ์๊ฒฌ/๋ด ๋ณด๊ณ ์์๋ ์ด๋ฏธ ๋ ๊ฐ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ํฌํจ๋์ด ์์ต๋๋ค.
๊ณตํํ๊ฒ, ๋น์ ์ ๋ชฉ๋ก์ ์๋ก์ด ๊ฒ์ ์ถ๊ฐํ์ง๋ง ๋ฌธ์ ๋ 'ํจ์ฆ๋ฅผ ์ค์นํ ์ ์์ต๋๋ค'๊ฐ ์๋๋ฉฐ ์ฒซ ๋ฒ์งธ ๊ฒ์๋ฌผ์ ์ฝ๋ ๊ฒ์ ๋ฌด์จ ์ผ์ด ์์ด๋ ํจํค์ง๋ง ์ค์นํด์ผ ํ๋ ์ฌ๋๋ค์๊ฒ ๋์์ด ๋ ๊ฒ์
๋๋ค.
์ง์ง ๋ฌธ์ ๋ 'mknod๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค'(๋๋ ๋ ์ผ๋ฐ์ ์ผ๋ก: ์ง๊ธ๊น์ง ์คํจํ ๊ถํ ์๋ ์์ ์ด ํ์ํจ)์ ๋๋ค.
@jpetazzo ์ด๋ ๊ฒ ํ๋ฉด ํด๊ฒฐํ ์ ์์ฃ ? https://lwn.net/Articles/564977/ - ๊ทธ๋๊น์ง๋ ์ฅ์น ์ก์ธ์ค๋ฅผ ๊ฒฉ๋ฆฌํ๋ ๊ฒ์ด _๋ ๋ค๋ฅธ ๋ณต์ก์ฑ ๊ณ์ธต์ด๊ณ ์ด๋๊ฐ์์ ๊ด๋ฆฌ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ 3)์ ์ ํํฉ๋๋ค.
๋ฃจํ ๋ง์ดํ ์ด๋ ํจ์ฆ๊ฐ ํ์ ๊ธฐ๋ฅ์ด๋ผ๋ ๊ฒ๋ ํ์ง ์์ต๋๋ค. ์ฌ์ฉ์ ๊ณต๊ฐ์ ์๋ ํ์ผ ์์คํ ์ ๋ง์ดํธํ๊ธฐ ์ํด ์ฌ์ฉ ๊ณต๊ฐ์ ์๋ ์ปจํ ์ด๋์ ๋ฃจํธ ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ์ ๋ฏธ์น ์ง์ ๋๋ค.
ํ์ผ ์์คํ
์ด๋ฏธ์ง๋ fuse fs๋ฅผ ๋ง์ดํธํด์ผ ํ๋ ๊ฒฝ์ฐ ์ปจํ
์ด๋ ์ธ๋ถ์ ๋ง์ดํธํ๊ณ ๋ณผ๋ฅจ/๋ฐ์ธ๋ ๋ง์ดํธ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. docker ์์ฒด์์ ์๊ฒฉ ํ์ผ ์์คํ
์ ์ง์ํ๊ณ ๊ด๋ฆฌํ๋ ๊ฒ์ ์ข์ ๊ธฐ๋ฅ์ผ ์ ์์ง๋ง. ์๋ง๋ dockerfile MOUNT
@discordianfish 3)์ ๊ฑฐ์ ์๋ฃจ์ ์ด ์๋๋๋ค.
#2979๊ฐ ์ด ๋ฌธ์ ์ ๋์์ด ๋ ๊น์?
๋๋ ์ด๊ฒ์ ๋ํ ํด๊ฒฐ์ฑ ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ง๋ง mknod ๋๋ฌธ์ด ์๋๋๋ค. ์ฐ๋ฆฌ๋ /etc/security/limits.d/๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์ ๋ํ ์ ํ์ ์ค์ ํ๋ rpm์ผ๋ก centos ์ปจํ ์ด๋๋ฅผ ์คํํ๊ณ ์์ผ๋ฉฐ ํ์ฌ ๋ค์์ผ๋ก ๊ตฌ์ฑ๋ sledgehammer ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
RUN /bin/sed --in-place -e "s/^\s\?session.*pam_limits.so.*/\#\0/g" /etc/pam.d/*
๋ด Dockerfile์ ๋งจ ์์ ์์ต๋๋ค. (์ ํฌ๋ ํ๋กํ ํ์ดํ ์ค์ด๋ ๊ฑฑ์ ํ์ง ๋ง์ธ์ :) )
์๋ ํ์ธ์ @jpetazzo ๊ทํ๊ฐ ์ ์ํ ๋ ๊ฐ์ง ์ต์ ์ ๋ชจ๋ ์๋ํ์ต๋๋ค. ๋ค์์ ์ฌ์ฉํ์ฌ "oracle_xe" ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค.
sudo docker build-privileged -t oracle_xe ๋ด Dockerfile์์ ์ด 2๊ฐ์ ๋ช ๋ น์ ์คํํ๊ณ ์ถ์ต๋๋ค.
RUN ๋ง์ดํธ -o ๋ค์ ๋ง์ดํธ, ํฌ๊ธฐ=3G /dev/shm
์คํ ๋ง์ดํธ -a
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์๋ํ์ง ์์ต๋๋ค. ์ฌ์ฉํ ๊ตฌ๋ฌธ์ด ์๋ชป๋์ง ์ฌ๋ถ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ด๊ฐ ์ป๋ ์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํ๋๊ทธ๊ฐ ์ ๊ณต๋์์ง๋ง ์ ์๋์ง ์์: -privileged
๋๋ ๋ํ RUNP๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ ๋ฒ์งธ ์ ํ์ ์๋ํ์ง๋ง ์๋ํ์ง ์์์ต๋๋ค. ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ๋ ํด๋น ๋จ๊ณ๋ฅผ ๊ฑด๋๋๋๋ค.
๊ฐ์ฌ ํด์.
๋๋ RUNP๋ "build --privileged"๊ฐ ๊ตฌํ๋์ง ์์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ฐ๋ฅํ๋ฉด ์ฃผ์ ํ์ง ๋ง๊ณ Dockerfile์ ๊ณต์ ํ์ญ์์ค. ์ ์ฉํ ์ ์์ผ๋ฏ๋ก
"๊ฐ์ฅ ๋ ๋์" ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ๊ณตํ ์ ์์ต๋๋ค :-)
2014๋ 4์ 9์ผ ์์์ผ ์ค์ 7์ 44๋ถ์ Manoj7 [email protected]์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์๋ ํ์ธ์ jpetazzo ๊ทํ๊ฐ ์ ์ํ ๋ ๊ฐ์ง ์ต์ ์ ๋ชจ๋ ์๋ํ์ต๋๋ค. ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค
์ด๋ฏธ์ง "oracle_xe"๋ฅผ ์ฌ์ฉํ์ฌsudo docker build - ๋ด Dockerfile์ ์๋ ๊ถํ ์๋ -t oracle_xe
์ด 2๊ฐ์ ๋ช ๋ น์ ์คํํ๊ณ ์ถ์ต๋๋คRUN ๋ง์ดํธ -o ๋ค์ ๋ง์ดํธ, ํฌ๊ธฐ=3G /dev/shm
์คํ ๋ง์ดํธ -aํ์ง๋ง ์๋ํ์ง ์์ต๋๋ค. ๋ด๊ฐ ์ฌ์ฉํ ๊ตฌ๋ฌธ์ด ๋ค์๊ณผ ๊ฐ์์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์๋ชป๋. ๋๋ ๋ํ RUNP๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ ๋ฒ์งธ ์ ํ์ ์๋ํ์ง๋ง ๊ทธ๊ฒ๋ ๋์ง ์์๋ค
์์ , ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ๋ ํด๋น ๋จ๊ณ๋ฅผ ๊ฑด๋๋๋๋ค.
์ ์ ์๋ ๋ช ๋ น ์คํ์ ๊ฑด๋๋๋๋ค. ๋๋ ๋น์ ์๊ฒ ๋ด๊ฐ ์ธ Dockerfile์ ๋ณด๋ผ ์ ์์ต๋๋ค
๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ๋์์ฃผ์ธ์.๊ฐ์ฌ ํด์.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/dotcloud/docker/issues/1916#issuecomment -39972199์์ ํ์ธํ์ธ์.
.
@jpetazzo https://twitter.com/jpetazzo
์ต์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ:
http://jpetazzo.github.io/2014/03/23/lxc-attach-nsinit-nsenter-docker-0-9/
์๋ ํ์ธ์ @jpetazzo , ๋ด
@jpetazzo
oracle_xe ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๋ฐ ์ฌ์ฉํ Dockerfile
* ๋ถํฐ
์ ์ง ๋ณด์ * * * * * * *
์ถ๊ฐ oracle-xe-11.2.0-1.0.x86_64.rpm.zip /appl/oracle/xe/oracle-xe-11.2.0-1.0.x86_64.rpm.zip
RUN ๋ง์ดํธ -o ๋ค์ ๋ง์ดํธ, ํฌ๊ธฐ=3G /dev/shm
์คํ ๋ง์ดํธ -a
RUN cd /appl/oracle/xe && oracle-xe-11.2.0-1.0.x86_64.rpm.zip ์์ถ ํ๊ธฐ
์คํ cd /appl/oracle/xe/Disk1 && rpm -Uvh oracle-xe-11.2.0-1.0.x86_64.rpm
์คํ cd /appl/oracle/xe && rm oracle-xe-11.2.0-1.0.x86_64.rpm.zip
ENV ORACLE_HOME /u01/app/oracle/product/11.2.0/xe
ENV ORACLE_SID XE
๋ด๊ฐ ์๋ํ ์ฒซ ๋ฒ์งธ ์ผ์
sudo docker build -privileged -t oracle_xe .
์ด๊ฒ์ ์๋ํ์ง ์์์ผ๋ฉฐ RunP๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ์ต๋๋ค.
์คํ ๋ง์ดํธ -o ๋ค์ ๋ง์ดํธ, ํฌ๊ธฐ=3G /dev/shm
์คํ ๋ง์ดํธ -a
์ด๊ฒ๋ ์๋ํ์ง ์์ ์ด ๋ ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ์์ต๋๋ค.
@gatoravi : ๋ถํํ๋ /etc/hosts ๋ง์ดํธ ํด์ ๋ ์ฝ๊ฒ ์๋ํ์ง ์์ต๋๋ค. ์ ๊ทธ๋ ๊ฒ ํด์ผ ํฉ๋๊น? (๋งค์ฐ ํ๋นํ ์ด์ ๊ฐ ์์ ์ ์๋ค๋ ๊ฒ์ ์ดํดํ์ง๋ง ์ต์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๊ธฐ ์ํด ๊ทธ ์ด์ ๋ฅผ ๋ฃ๊ณ ์ถ์ต๋๋ค...)
@Bhagat7 : ๋ง์! ์ง๋ฌธ: ๋ฐํ์ _๋ฐ_ ์ค์น ์ ๋ ํฐ /dev/shm์ด ํ์ํฉ๋๊น, ์๋๋ฉด ๋ฐํ์์๋ง ํ์ํฉ๋๊น? ๋น๋ ์๊ฐ์ ์๋ค๋ฉด ์ด๋ค ๋จ๊ณ๊ฐ ์คํจํ๊ณ ์ด๋ป๊ฒ ๋ฉ๋๊น?
@jpetazzo ๋ด ๋๊ตฌ์ ๋น๋ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก /etc/hosts์ ์ ์ฃผ์์ IP ์ฃผ์๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค.
echo $IP $HOST
>> /etc/hosts.conf์ ๊ฐ์ ๊ฒ.
docker run --privileged
๋ฅผ ์ฌ์ฉํ ๋ค์ sudo umount \etc\hosts
๋ฅผ ์ํํ๋ฉด ์ด ์์
์ ์ ์ํํ ์ ์์ง๋ง docker commit
๋ฅผ ์ฌ์ฉํ์ฌ ์ปค๋ฐํ ์ ์๋ ๊ฒ ๊ฐ์ผ๋ฏ๋ก umount
๋ฅผ ๋ฐ๋ณตํด์ผ ํฉ๋๋ค. ์ปจํ
์ด๋๋ฅผ ์คํํ ๋๋ง๋ค ์๋์ผ๋ก
\etc\hosts
์ฐ๊ธฐ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ณ ์๊ตฌ์ ์ผ๋ก ๋ง๋ค๊ณ ์ถ์ต๋๋ค. docker commit
๋๋ Dockerfile์ ์ฌ์ฉํ์ฌ ์ํํ ๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
@jpetazzo
๋๋์ด ๋ฌธ์ ๊ฐ ์์๋ค
bash-4.1#/etc/init.d/oracle-xe ๊ตฌ์ฑ
Oracle Application Express [8080]์ ์ฌ์ฉํ HTTP ํฌํธ๋ฅผ ์ง์ ํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฆฌ์ค๋ [1521]์ ์ฌ์ฉํ ํฌํธ๋ฅผ ์ง์ ํ์ญ์์ค: 1521
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณ์ ์ ์ฌ์ฉํ ์ํธ๋ฅผ ์ง์ ํฉ๋๋ค. ๋์ผํ๋ ์ฐธ๊ณ ํ์ธ์
์ํธ๋ SYS ๋ฐ SYSTEM์ ์ฌ์ฉ๋ฉ๋๋ค. Oracle์ ๋ค์์ ์ฌ์ฉํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณ์ ์ ๋ํด ๋ค๋ฅธ ์ํธ. ์ด๊ฒ์ ํ์ ํ ์ ์์ต๋๋ค
์ด๊ธฐ ๊ตฌ์ฑ:
๋น๋ฐ๋ฒํธ ํ์ธ:
๋ถํ ์ Oracle Database 11g Express Edition์ ์์ํ์๊ฒ ์ต๋๊น(y/n) [y]:y
Oracle Net Listener ์์ ์ค...์๋ฃ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ฑ ์ค...์๋ฃ
Oracle Database 11g Express Edition ์ธ์คํด์ค ์์ ์ค...์๋ฃ
์ค์น๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์์ต๋๋ค.
bash-4.1#cd /u01/app/oracle/product/11.2.0/xe/bin
base-4.1#sqlplus
์ฌ์ฉ์ ์ด๋ฆ ์
๋ ฅ: ์์คํ
๋น๋ฐ๋ฒํธ ์
๋ ฅ: * **
ํ์ง๋ง ๋๋์ด ์ค๋ฅ๊ฐ ๋ฐ์
ORA-01034: Oracle์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ORA-27101: ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ์กด์ฌํ์ง ์์ต๋๋ค
Linux-x86_64 ์ค๋ฅ: 2: ํด๋น ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ต๋๋ค.
ํ๋ก์ธ์ค ID: 0
์ธ์
ID: 0 ์ผ๋ จ ๋ฒํธ: 0
df -h ๋ฐํ๋ ์ปจํ
์ด๋ ๋ด๋ถ
์ฌ์ฉ๋ ํ์ผ ์์คํ
ํฌ๊ธฐ ๊ฐ์ฉ ์ฌ์ฉ๋(%)์ด ๋ง์ดํธ๋์์ต๋๋ค.
tmpfs 64M 0 64M 0% /dev/shm
๊ทธ๋์ tmpfs์ ํฌ๊ธฐ๋ฅผ 3G๋ก ๋๋ ธ์ ๋ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ปจํ
์ด๋๋ฅผ ์คํํ์ฌ ํด๊ฒฐํ์ต๋๋ค.
sudo docker run -privileged -i -t oracle_xe /bin/bash. ์ปจํ
์ด๋ ๋ด๋ถ์์ 2๊ฐ์ ๋ง์ดํธ ๋ช
๋ น์ ์คํํ์ต๋๋ค. ํ์ง๋ง ๊ทธ๋ฐ ์์ผ๋ก ํ๊ณ ์ถ์ง ์๊ณ ๋์ Dockerfile์ ๋ฃ๊ณ ๋น๋ํ๊ณ ์ถ์ต๋๋ค.
@gatoravi : ์๊ฒ ์ต๋๋ค. ๋ค์ ๋ ๊ฐ์ง ์ง๋ฌธ์ด ๋ ์์ต๋๋ค. ๋น๋ ์ค์ /etc/hosts์ ์ถ๊ฐ ํธ์คํธ๊ฐ ํ์ํฉ๋๊น, ์๋๋ฉด ์คํ ์ค์๋ง ํ์ํฉ๋๊น? ๊ทธ๋ฆฌ๊ณ ์ ํ์ํฉ๋๊น?
@Bhagat7 : ์ฃ์กํฉ๋๋ค, ์์ง ์ด์ ๋ํ ์ฐ์ํ ์๋ฃจ์ ์ด ์์ต๋๋ค :-(๋ ๊ฐ์ Dockerfile์ด ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
@jpetazzo ์ฐ๋ฆฌ๋ ์ฌ์ฉ์์๊ฒ ํธ์ง ๊ฐ๋ฅํ /etc/hosts/๊ฐ ์๋ ์ด๋ฏธ์ง(/container)๋ฅผ ์ ๊ณตํ์ฌ ํด๋น ํ์ผ์ ์์ ํ๋ ์ฝ๋๋ฅผ ๋น๋ํ ์ ์๋๋ก ํ๊ณ ์ถ์ต๋๋ค. :) ํธ์คํธ๋ฅผ ์ถ๊ฐํด์ผ ํ๋ ์ด์ ์ ๊ดํด์๋ ์์งํ ํ์ ํ ์ ์์ง๋ง ํน์ ํธ์คํธ ์ด๋ฆ์ด IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ๋๊ธฐ ์ํด ์ค์น์ ์ผ๋ถ๋ก ์ํํฉ๋๋ค.
@Bhagat7 ๋ค์ ์กฐํฉ์ ์ฌ์ฉํ์ฌ ๋์ปค 0.9 ์ปจํ ์ด๋์์ Oracle XE๋ฅผ ์คํํ ์ ์์์ต๋๋ค.
sysctl -w kernel.msgmni=4096
sysctl -w kernel.msgmax=65536
sysctl -w kernel.msgmnb=65536
sysctl -w fs.file-max=6815744
echo "fs.file-max = 7000000" > /etc/sysctl.d/30-docker.conf
service procps start
@mikewaters ๋ต๋ณ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. Ubuntu ์์ Oracle XE๋ฅผ ๊ตฌ์ถํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง Centos์์ ๋น๋ํ๋ ค๊ณ ํฉ๋๋ค.
@jpetazzo ์ ์
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ,
๋๋ /dev/shm
์ ์จ์ผ ํ๋ google-chrome์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. /etc/fstab
ํน์ ๊ตฌ์ฑ์ ์ถ๊ฐํ๋ ค๊ณ ํ์ง๋ง mout -a
๋ฅผ ์คํํ์ฌ ๋น๋์ ์์ ์ฌํญ์ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ฌผ๋ก ๊ธฐ๋ณธ chmod
๋๋ chown
์๋ํ์ง๋ง ๋น๋์์๋ ํ ์ ์์ต๋๋ค.
--privileged
๋ชจ๋๋ก ๋ก๊ทธ์ธํ ๋ ๋ด ๋ช
๋ น์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์์
๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ค๋ช
ํ๋ฏ์ด ๋น๋ ์ ์ด ์์
์ ์ํํด์ผ ํฉ๋๋ค.
์ด๋ ํ ์ ์?
๊ฐ์ฌํฉ๋๋ค.
@tomav "/dev/shm" ๊ถํ ๋ฌธ์ ๋ ์ค์ ๋ก #5126์ด๋ฉฐ #5131์์ ์์ ๋์์ผ๋ฉฐ ์ด๋ฏธ ๋ง์คํฐ์ ๋ณํฉ๋์์ต๋๋ค(๋ค์ ๋ฆด๋ฆฌ์ค์ ์์ ์์ ).
@tianon๋ ๊ฐ์ฌํฉ๋๋ค.
์ค๋ ์ ๋ ์ด๋ฐ ์๊ฐ์ ํ์ต๋๋ค. ์ ๋ ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ ๊ด๋ฆฌํ๋ ์ปจํ ์ด๋๋ฅผ ์ํฉ๋๋ค. ์ฝ์ง๋ง vps์ ์๊ธฐ ๋๋ฌธ์ ํด๋น ๋ณผ๋ฅจ์ ์ํธํํ๊ณ ์ถ์ง๋ง ํ์์ ๊ฐ์ด ๋ค๋ฅธ ์ปจํ ์ด๋์ ๋ช ํํ๊ฒ ์ ๊ณตํฉ๋๋ค. ์์ ์ ๊ฐ์ ๋์คํฌ์ ๋ช ํํ ๋ฐ์ดํฐ๊ฐ ์๊ณ ํค๋ฅผ ์ญ์ ํ์ฌ ๋น ๋ฅด๊ฒ ํ๊ดดํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
๋๋ ์ปจํ ์ด๋๋ฅผ ๋ฃ์ cryptfs๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด ๊ธฐ์ฌ์์ ์๋ฆ๋ต๊ฒ ๋ฌธ์ํ๋ ๋ช ๊ฐ์ง ๋จ๊ณ๋ฅผ ๋ฐ๋์ต๋๋ค. https://launchbylunch.com/posts/2014/Jan/13/encrypting-docker-on-digitalocean/
์ฐธ๊ณ ๋ก ์ ๋ ๊ทธ๋ ๊ฒ ํ๋ ค๊ณ ํ์ง _์๋์ง๋ง ์ค์ ๋ก๋ cryptfs๊ฐ ํ์ฌ๋ ์ปจํ
์ด๋๊ฐ ์์ต๋๋ค.
๋ฐ๋ผ์ ์ํธํ๋ ํ์ผ ์์คํ
์ ๋์ปค๋ฅผ ํตํด ๋น๋ํ๋ ๋์ ์์ฑ, ๋ง์ดํธ, ํฌ๋งท๋์ด์ผ ํฉ๋๋ค.
์คํจ:
+ losetup -f
losetup: Could not find any loop device. Maybe this kernel does not know
about the loop device? (If so, recompile or `modprobe loop'.)
+ losetup -f
+ LOOP_DEVICE=/dev/loop1
+ losetup /dev/loop1 /cryptfs/disk
+ cryptsetup luksFormat --batch-mode --key-file=/etc/cryptfs/random /dev/loop1
setpriority -18 failed: Permission denied
/dev/mapper/control: mknod failed: Operation not permitted
Failure to communicate with kernel device-mapper driver.
Cannot initialize device-mapper. Is dm_mod kernel module loaded?
์์ง ๋ฐฉ๋ฒ์ด ์๋์? (๋์คํฌ ๋ง์ดํธ/ํฌ๋งท ๋จ๊ณ๋ฅผ run
๋ก ์ด๋ํ๋ ๊ฒ ์ธ์)
+1 "๋์ปค์ ๋์ปค" ํ๊ฒฝ์ ํนํ ์ ์ฉํฉ๋๋ค.
์ด์ ๋ํด +1ํ๋ฉด iptables๊ฐ ๊ถํ ์๋ ๋ชจ๋์์ ์๋ํ์ง ์์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ค์ ํ๋ ค๋ ๋ชจ๋ ์์ ์ด ์คํจํ๊ฒ ๋ฉ๋๋ค.
@PerilousApricot : ๊ทธ๋ฌ๋ RUN
์ iptables ๊ท์น์ ์ค์ ํ ์ ์๋๋ผ๋ ์ด๋ฏธ์ง๋ ํ์ผ ์์คํ
์ ์ํ๋ง ๋ณด์ ํ๋ฏ๋ก ์ฆ์ ์์ค๋ฉ๋๋ค. ์คํ ์ค์ธ ํ๋ก์ธ์ค, ๋คํธ์ํฌ ๊ฒฝ๋ก, iptables ๊ท์น ๋ฑ์ ๋ํด ์์ง ๋ชปํฉ๋๋ค.
์ปจํ
์ด๋์๋ ํน์ ํฌํธ๋ง ์๊ธฐ ๋๋ฌธ์ ๊ด์ฐฎ์ต๋๋ค.
์ ๋ฌ๋จ, ๋ฐฉํ๋ฒฝ์ ์ ๊ฒฝ์ฐ์ง ์๊ณ ๋๋ถ๋ถ
์ค์น ํ๋ก๊ทธ๋จ์ ์ ํ ์ฑ๊ณตํ ์ ์์ต๋๋ค.
์ค๋๋ฅ ๋ฉ๋ก
@PerilousApricot ์๊ฒ ์ต๋๋ค ! ์ด ๊ฒฝ์ฐ iptables
์ /bin/true
์ ์ฌ๋ณผ๋ฆญ ๋งํฌํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ์ค์น ํ๋ก๊ทธ๋จ๋ ๋ง์กฑํด์ผ ํฉ๋๋ค. (๋๋ ์ค์น ํ๋ก๊ทธ๋จ์ ์์ด๋ ์ ์ฌํ ํธ๋ฆญ?)
๋๋ ๊ทธ๊ฒ์ ์๋ํ์ง๋ง ์ค์น ํ๋ก๊ทธ๋จ์ ๋ํ ๋ค์์ ์ถ๋ ฅ์ ๊ตฌ๋ฌธ ๋ถ์ํด์ผ ํฉ๋๋ค.
iptables, ๊ทธ๋์ ๊ทธ๋ ๊ฒ ์ฝ์ง๋ ์์ต๋๋ค :)
์๊ฒ ์ต๋๋ค. ์ด๊ฒ์ด ํดํน์ด ๋๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง -- ๋์ ๊ฐ์ง iptables
๋ฅผ ๋ฃ๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ์ด๋ค ๋๋ฏธ ์ถ๋ ฅ์ด ์์ฑ๋ฉ๋๊น?
๋๋ ๊ทธ๊ฒ์ด ์ข์ง ์๋ค๋ ๊ฒ์ ์์ ํ ์ดํดํฉ๋๋ค. ํ์ง๋ง ์ง์งํ๊ฒ, ๊ทธ๋ฐ ์ข ๋ฅ์ ์ค์น ํ๋ก๊ทธ๋จ์ ์ฒ์๋ถํฐ ๊ณ ์ณ์ ธ์ผ ํฉ๋๋ค :)
docker ์ฌ์ฉ ์ฌ๋ก์ docker๋ ์ ๋ฅผ ์ฌ๊ธฐ๋ก ๋ฐ๋ ค์จ ๊ฒ์ ๋๋ค. ๊ธ์, lxc์ ๋์ปค, ๊ตฌ์ฒด์ ์ผ๋ก ๋งํ๋ฉด ์ฐ๋ฆฌ ๊ฐ๋ฐ ํ๊ฒฝ์ด lxc๋ฅผ ์ฌ์ฉํ๊ณ ๊ฐ๋ฐ์๊ฐ lxc์์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
docker์ docker์์๋ ์ด๊ฒ์ ์ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ๊ธฐ ์ ์ ๊ฐ์ ธ์์ผ ํ๋ ์ด๋ฏธ์ง๊ฐ ์๋๋ฐ, ์ด๋ ๋ค์ ํฝ๋๋ค. ์์ฃผ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ปค๋ฐํ ํ์ ์์ด docker build
์ผ๋ถ๋ก ๊ฐ์ ธ์์ ์บ์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ก์๋น๊ธด ์ฉ๊ธฐ.
์ด ๊ธฐ๋ฅ์ ํ์ IMHO์ด๋ฉฐ RUNP
์ build-privileged
์ด ์ข์ต๋๋ค.
๋ด๊ฐ ์ง๋ฉดํ ์ค์ /ํ๋ก๋์
์๋๋ฆฌ์ค๋ ์ค๊ฐ ์ปจํ
์ด๋์์ Puppet ํ๋ก๋น์ ๋์ผ๋ก ๊ตฌ์ถ๋ Docker ์ด๋ฏธ์ง์
๋๋ค. ์์น๋ ๊ธฐ๋ฅ์ด ํ์ํ ํน์ ์๋น์ค์์๋ ENTRYPOINT
๋๋ CMD
์ปจํ
์ด๋๋ฅผ -privileged
์์ ์คํํด์ผ ํ๋ ๋น๋์ ์คํจํ์ฌ puppet ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ ์ ์ฉํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์ปจํ
์ด๋ ๋ด์์ ์ค์ ์๋น์ค์ ์์ ์๊ฐ์ด ์ง์ฐ๋ฉ๋๋ค. ์ ์ ํ ์ํ๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด ๊ผญ๋๊ฐ์ ๊ตฌ์ฑ์ ๋น๋ํ ๋ค์ ์ ์ฉํด์ผ ํ๊ณ (์๊ฐ์ด ๋ง์ด ์์๋จ) ์คํ ์ค์ธ ์ปจํ
์ด๋๊ฐ ์ค์ -privileged
์์ ์คํ๋ ํ์๊ฐ _์์ต๋๋ค.
์์ ๋ด์ฉ์ด ์๋ฏธ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@jpetazzo centos6 ์์ ์น ์๋ฒ๋ฅผ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค. dockerfile์ ํตํด iptable ๊ท์น์ ๊ตฌ์ฑํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. @PerilousApricot ์ ๋ฌธ์ ์ ์ ์ฌํฉ๋๋ค.
btw: ๋๋ ๊ฐ์ง iptables์ ๊ฐ์ ํดํน์ ๊ตฌํํ๋ ๊ฒ์ด ์๋๋๋ค.
@pmoust : ์์น๋ ๊ถํ์ด ํ์ํ ๋น๋ ์์ ์ ๋ํ ์ธ๋ถ ์ ๋ณด๊ฐ ์์ต๋๊น? ๋๋ ์๋ง๋ ์ด ๋ฌธ์ ๋ฅผ ํผํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ๋น์ ์๊ฒ ๋ง์กฑ์ค๋ฝ์ง ์์ ์๋ ์๋ค๋ ๊ฒ์ ์์ ํ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ด๋ค ์ข ๋ฅ์ ์ค์น ํ๋ก๊ทธ๋จ/๋น๋๊ฐ ์ด๋ฌํ ๊ถํ์ ์๊ตฌํ ์ ์๋์ง ์ดํดํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค...
@passion4aix :
@jpetazzo Bitrock ์ค์น ํ๋ก๊ทธ๋จ์ด ํ ์์ ๋๋ค. /tmp๋ฅผ tmpfs๋ก ๋ง์ดํธํด์ผ ํฉ๋๋ค. http://answers.bitrock.com/questions/3092/running-installer-inside-docker๋ฅผ ์ดํด๋ณด๊ณ ์ถ์ ์๋ ์์ต๋๋ค.
@jpetazzo ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋
๋ํ TokuMX๋ 'transparent_hugepage' ์ปค๋ ์ต์ ์ ๋นํ์ฑํํด์ผ ํ๊ธฐ ๋๋ฌธ์ Docker ์ปจํ ์ด๋์์ TokuMX๋ฅผ ์คํํ๋ ค๊ณ ํ ๋ ๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ด ๋ฌธ์ ์ ์ง์ ์ด ์์ต๋๊น? ์ด๋ฏธ 1๋ ์ด ๋์๊ณ ๋๊ธ์ ๋ณด๋ฉด ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด Dockerfile์์ ๊ถํ ์๋ ์์ ์ ์คํํ๋ ๋ฐ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋๋ '--privileged' ์๋ฃจ์ ์ผ๋ก ๋น๋๋ฅผ ์ ํํ์ง ์์ ๊ฒ์ ๋๋ค. ์ ์ฒด ์ค์น๋ฅผ ๊ถํ ์๋ ์ํ๋ก ์คํํ๋ ๋์ ์ผ๋ถ ์์ ๋ง ๊ถํ ์๋ ์ฌ์ฉ์๋ก ์คํํ ์ ์์ผ๋ฏ๋ก RUNP ์๋ฃจ์ ์ด ๋ ์ข์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ต์ํ ์ธ์ RUNP๋ฅผ ์ฌ์ฉํ ์ง ์๊ฐํ๊ณ ํ์ํ ๋๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๋์๊ฒ ์ง๋ฌธ์ ๋ ์ด์ ์ด ์ต์ ์ ์ถ๊ฐํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ ์๋ฃ๋ ๋๋ง ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ธ์ ์ด ๊ธฐ๋ฅ์ ๊ธฐ๋ํ ์ ์์ต๋๊น?
@diversit ๊ทธ๋ค์ ๊ฒฐํฉ๋์ด์ผ ํ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ๋ช
๋ น์ค์์ --privileged
๋ฅผ ์ฌ์ฉํ๋ฉด RUNP
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด DockerHub๋ฅผ ํฌํจํ์ฌ ์ ๋ขฐํ ์ ์๋ ์ฝ๋ ๋น๋๋ฅผ ์ํํ๋ ์ฌ๋๋ค์๊ฒ ๋ณด์ ์
๋ชฝ์ด ๋ ๊ฒ์
๋๋ค.
๊ทธ๋ฌ๋ Dockerfile ๊ตฌ๋ฌธ ์ธ๋ถ์์ ์๋์ผ๋ก ์ด ์์ ์ ์ํํ ์๋ ์์ต๋๋ค. ๋น๋ ํ๋ก์ธ์ค๋ Dockerfile์ ์ฝ๊ณ , ์ฌ๊ธฐ์์ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ณ , ์ด๋ฏธ์ง์ ๋ค์ ์ปค๋ฐํฉ๋๋ค.
@deas : VOLUME /tmp
ํ๋ฉด ํด๊ฒฐํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
@PerilousApricot : ์ข ๋ ์์ธํ
@diversit : ๊ทธ ํน์ ํ ๊ฒฝ์ฐ์, ๋๋ ๊ธฐ๊ณ์ ๊ด๋ฆฌ์๊ฐ ๋น๋ํ๊ธฐ ์ ์ ํฌ๋ช ํ ๊ฑฐ๋ํ ํ์ด์ง๋ฅผ ๋นํ์ฑํํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋น๋๊ฐ ๊ทธ๋ ๊ฒ ํ๋๋ก ํ์ฉ๋๋ฉด ์ ์ญ์ ์ผ๋ก(๋ง์ต๋๊น?) ํด๋น ๊ธฐ๋ฅ์ด ํ์ํ ์ ์๋ ๋ค๋ฅธ ์ปจํ ์ด๋๋ฅผ ์์์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฌด์จ ๋ง์ธ์ง ์๊ฒ ์ด? ์ปจํ ์ด๋ X๋ฅผ ๋น๋ํ๋ ๊ฒ์ด ์ปจํ ์ด๋ Y๋ฅผ ์คํํ๋ ๊ฒ์ ์ค๋จํ๋ฉด ๋์ ๊ฒ์ ๋๋ค...
๋ชจ๋: Dockerfile์ด ์๋ํ์ง ์์ ๋ ๋งค์ฐ ์ค๋ง์ค๋ฝ๊ณ ์ด --privileged
/ RUNP
ํ๋๊ทธ
@jpetazzo ๋ง์/๋๋ถ๋ถ์
๋ํ "๊ถํ ์๋ ๋น๋๊ฐ ํ์ํ Dockerfile์ด ์๋ ๊ฒฝ์ฐ X, Y, Z ๊ธฐ๋ฅ์ ์๊ฒ ๋ฉ๋๋ค"๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ๊ณต์ ํ ํธ๋ ์ด๋์คํ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
Oracle x๋ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ์ถฉ๋ถํ์ง ์์ผ๋ฉด ์คํ๋์ง ์์ต๋๋ค. ๋ชจ๋ ๊ณ์ ์ enuf ๊ณต๊ฐ์ด ์๋ remountimg tmpfs๊ฐ Oracle x๋ฅผ ๊ธฐ์๊ฒ ์์ํ๊ณ ๊ตฌ์ฑ์ ์๋ฃํ๋๋ก ํฉ๋๋ค. ๋ง์ดํธ ํฌ๊ธฐ๋ฅผ ๋๋ ค์ ๊ทน๋ณตํ๋ค๋ ์๋ฌธ)
๋น๋ ์ค
RUN ๋ง์ดํธ ํด์ tmpfs
์คํจ
umount: /proc/kcore: umountํ๋ ค๋ฉด ์ํผ์ ์ ์ฌ์ผ ํฉ๋๋ค.
๋์๊ฒ RUNP๋ฅผ ์ฃผ๊ฑฐ๋ ์ฃฝ์์ .... ๋๋ .... ๋ค๋ฅด๊ฒ ํ ์ ์๋ ๊ฒ์ ๋ณด์ฌ์ฃผ์ธ์ :)
๋ด ์๋ ์ ํจํ์ง ์์ต๋๋ค. @jpefazzo๋ ์ฌ์ ํ ์ ์์ต๋๋ค :) ๋ด Oracle ์ค์ ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๊ณ tmpfs ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ํ์๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค... ์ต์ํ ์ด๊ธฐ ์ค์น๋ฅผ ์ํด์๋.
CentOS 7.0์์ run
--privileged
๊ฒฝ์ฐ์๋ง ํด๊ฒฐ๋๋ iptables
๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. https://github.com/docker/docker/issues/3416
๊ถํ ์๋ ๊ฑด๋ฌผ์ ๋ํ ์ง์์ด ์์ผ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
Step 24 : RUN iptables -I INPUT -p tcp --dport 80 -j ACCEPT
---> Running in 74ebc19b6935
iptables v1.4.21: can't initialize iptables table `filter': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
@buley #8299์ security-opts
๋ฅผ ์ถ๊ฐํ๋ฉด --privileged
์์ด๋ ๊ฐ๋ฅํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
@jpetazzo VOLUME /tmp
๋ฅผ ์ฌ์ฉํ์ฌ Bitrock ์ค์น ํ๋ก๊ทธ๋จ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋น๋์์๋ ์๋ํ ์ ์์ง๋ง /tmp
๋ ํด๋น ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ชจ๋ ์ปจํ
์ด๋์ ๋ํ AUFS ๊ณ์ธตํ๋ฅผ ์ฐํํ๊ฒ ๋ฉ๋๋ค. ๊ฒฐ๊ตญ AUFS์์ ๊ทผ๋ณธ ์์ธ์ ์์ ํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด ์ฌ์ฉ ์ฌ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋์ปค ์ปจํ
์ด๋ ๋ด๋ถ์ chroot ํ๊ฒฝ์ ๊ตฌ์ถํ๊ณ ์ถ์ต๋๋ค. ๋ฌธ์ ๋ debootstrap
๊ฐ chroot์ proc์ ๋ง์ดํธํ ์ ์๊ธฐ ๋๋ฌธ์ ์คํํ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
W: Failure trying to run: chroot /var/chroot mount -t proc proc /proc
mount: permission denied
์ปจํ
์ด๋๋ฅผ run --privileged
ํ๋ฉด (๋ฌผ๋ก ) ์๋ํฉ๋๋ค...
Dockerfile์์ chroot๋ฅผ ๋ถํธ์คํธ๋ฉ ํด์ ํ๊ณ ์ถ์ต๋๋ค(ํจ์ฌ ๋ ๊นจ๋ํจ). RUNP ๋๋ ๋น๋ --privileged๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์๋ํ๊ฒ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์ ๋ง ๊ฐ์ฌํฉ๋๋ค!
--privileged ๋๋ ํ์ฌ์ ๊ฒฝ์ฐ +1์ ๋๋ค. glusterfs ๊ตฌ์ถ ์๋ํ์ ํ์์ฑ
์ด๊ฒ์ Bitnami Tomcat ์ค์น ํ๋ก๊ทธ๋จ์์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ค๋ ๋์ ๋ ธ๋ ฅ์ ์ํฅ์ ๋ฏธ์น๊ณ ์์ต๋๋ค. ์ค์น ํ๋ก์ธ์ค์ 99%๋ ๋ฌธ์ ์์ด ์คํ๋์ง๋ง ์ฒ์์ผ๋ก tomcat์ ์์ํ๋ ค๊ณ ํ๋ฉด catalina-daemon.out์์ ๋ค์ ์ถ๋ ฅ๊ณผ ํจ๊ป ์คํจํฉ๋๋ค.
set_caps: ๊ธฐ๋ฅ์ ์ค์ ํ์ง ๋ชปํ์ต๋๋ค.
์ปค๋์ด ๊ธฐ๋ฅ์ ์ง์ํ๋์ง ํ์ธ
์ฌ์ฉ์ 'tomcat'์ ๋ํด set_caps(CAPS)๊ฐ ์คํจํ์ต๋๋ค.
๋ฐํ ๊ฐ์ด 4์ธ ์๋น์ค ์ข
๋ฃ
"--cap-add ALL"๋ก ์์ฑํ ์ปจํ ์ด๋์์ Tomcat ์ค์น ํ๋ก๊ทธ๋จ์ ์๋์ผ๋ก ์ฑ๊ณต์ ์ผ๋ก ์คํํ ์ ์์ต๋๋ค. 'docker run' ๋ค์ 'docker commit'์ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์์ฑํ ์ ์๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ธฐ ์ํด 'docker build'๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ด ์ด์ํ๊ฒ ๋ณด์ ๋๋ค. ๋น๋ ๊ณผ์ ์์ ์ฌ์ฉ๋๋ ์ปจํ ์ด๋๋ '๋์ปค ์คํ'์ ์ฌ์ฉํ์ฌ ์์ฑํ ์ ์๋ ์ปจํ ์ด๋์ ๊ฐ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ด์ผ ํฉ๋๋ค.
@gilbertpilz ๊ทธ๋ค์ ๋น๋ ์ด์์ฑ๊ณผ ๋ณด์์ ๋ณด์ฅํ๊ธฐ ์ํด ๋งค์ฐ ๋ช ์์ ์ผ๋ก ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค.
@cpuguy83 - ๋ง์ด ์ ๋ฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด ์์ผ๋ก ์ํ๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
๋์ปค ์คํ --cap-add ALL .... /bin/bash
bitnami-tomcatstack-7.0.56-0-linux-x64-installer.run ...
์ถ๊ตฌ
๋์ปค ์ปค๋ฐ ....
๋ด๊ฐ ์ฌ๊ธฐ์ ์๋์ผ๋ก ํ๊ณ ์๋ ๊ฒ๊ณผ ๋์ผํ ์์ ์ ์ํํ๊ธฐ ์ํด "๋์ปค ๋น๋"๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ๋ง ์๊ตฌํ๊ณ ์์ต๋๋ค. ์ด๋ฏธ์ง๋ฅผ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๋ง๋ค ์ ์์ง๋ง ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ง๋ค ์ ์๋ ๊ฒฝ์ฐ "์ด๋์ฑ ๋ฐ ๋ณด์"์ด ์ด๋ป๊ฒ "๋ณด์ฅ๋๋์ง"๋ฅผ ์ ์ ์์ต๋๋ค.
์ข์, ํธ์คํธ์ /etc/passwd๋ฅผ ๋น๋์ ๋ง์ดํธํ๊ณ ์ฐ์ฐํ ๊ทธ๊ฒ์ ๋์๊ฒ ๋ณด๋ด๋ Dockerfile์ ์ ๊ณตํ๊ฒ ์ต๋๋ค.
์ด ๋ฌผ๊ฑด์ ์ํํ ์ ์์ต๋๋ค.
๋ํ --privileged(๋ฐ --cap-add ALL)๋ ์ปจํ
์ด๋์ ์ฌ์ฉ์์๊ฒ ํธ์คํธ์ ๋ชจ๋ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
์ด๋ฌํ ๊ฒ๋ค์ ํ์ฉํ๋ฉด DockerHub ์ ์ฒด๊ฐ ์์๋ ์ ์์ต๋๋ค.
@cpuguy83 -
๊ทธ๋ฌ๋ ๋น์ ์ ์๊ตญ์ ์ด์ ๋ฅผ ํ๋ด๋ด์ง ์๊ณ ์ ๋ขฐํ์ง ์๋ ๋๊ตฐ๊ฐ์๊ฒ sudo๋ฅผ ์ฃผ์ง ์์ ๊ฒ์
๋๋ค.
๋น๋๋ ๊ฐ๋ฅํ ํ ์์ ํ๊ฒ ์ ๋ขฐํ ์ ์๋ ์ฝ๋๋ฅผ ์คํํ ์ ์์ด์ผ ํฉ๋๋ค.
๋น๋์์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ํ์ฑํํ๊ธฐ ์ํด CLI ํ๋๊ทธ๋ฅผ ๋์ ํ๋ฉด ๋น๋์ ์ด์์ฑ์ด ๊นจ์ ธ ์์ง ์ถ๊ฐ๋์ง ์์์ต๋๋ค.
์ฆ, ์ค์น ํ๋ก๊ทธ๋จ ์์ฒด๊ฐ ์ก์ธ์คํ ์ ์์ด์ผ ํ๋ ํญ๋ชฉ์ ์์ฒญํ๋ ์ค๋ฅ๊ฐ ๊ฑฐ์ ํ์คํฉ๋๋ค.
์ ํํ. ๊ถํ์ด ํ์ํ ๋์ปค ๋น๋๋ฅผ ์คํํ ์ ์๋ ๋ฅ๋ ฅ์ ์ ๋ขฐํ์ง ์๋ ์ฌ๋๋ค์๊ฒ ์ฃผ์ด์๋ ์ ๋์ง๋ง, ๋์ปค๋ ๋น์ ์ด _do_ ์ ๋ขฐํ๋ ์ฌ๋๋ค์ด ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ ๋ง์ง ์์์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์ ์ฑ ๊ฒฐ์ ์ด๋ฉฐ ๋๊ตฌ๊ฐ ๋๋ฅผ ์ํด ์ ์ฑ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ฒ์ ์ ๋ง ์ซ์ดํฉ๋๋ค. ์ข์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ด๊ฐ ๋ด๋ฆฐ ์ ์ฑ ๊ฒฐ์ ์ ๋ช ํํ๊ณ ๋๋ผ์ด ๋ฐฉ์์ผ๋ก ์คํํ ์ ์์ต๋๋ค.
๋น์ ์ ๋ ํฐ ๊ทธ๋ฆผ์ ๋ณด๊ณ ์์ง ์์ต๋๋ค.
์ด ์ํ๊ณ์๋ ๋น์ ์ ์๋ฒ์ ๋ด ์๋ฒ๋ณด๋ค ๋ ๋ง์ ๊ฒ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด DockerHub๋ ํญ์ ์ ๋ขฐํ ์ ์๋ ์ฝ๋๋ฅผ ๋น๋ํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ DockerHub๋ ๋น๋์ ๋ํ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์๋๋ก _์_ํด์๋ ์ ๋ฉ๋๋ค. ๋ด ๋์ปค ๋น๋๋ฅผ DockerHub๋ก ํธ์ํ ์ ์๋ค๋ ์๋ฏธ๋ผ๋ฉด ๊ด์ฐฎ์ต๋๋ค.
@cpuguy83 @tianon @jpetazzo -- FUD๊ฐ ์์๋ ๋, ๋๋ ๋งํ ์๋ฐ์ ์์ต๋๋ค:
์ด๋ฌํ ๊ฒ๋ค์ ํ์ฉํ๋ฉด DockerHub ์ ์ฒด๊ฐ ์์๋ ์ ์์ต๋๋ค.
ํ?
์ด ๊ธฐ๋ฅ ๊ตฌํ == TEOTWAWKI ?
๋ฌผ๋ก DockerHub๋ ์์ฒญ๋ --privileged
ํ๋๊ทธ์ ํจ๊ป docker build
๋ฅผ ์คํํ์ง ์์ต๋๋ค.
๋๋ฌด ๋ง์ด ์๊ฐํ์ง ์์๋ ๊ตฌํํ๋ ๋ ๊ฐ์ง ๋ถ๋ช
ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
docker -d
๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์๋ก์ด ํ๋๊ทธ : --i-want-a-broken-security-model
์ ๋ฐ์ ์ผ๋ก ๊ตฌํ์ ๋ํ ์์ง๋์ด๋ง ๊ธฐ๋ฐ ์ด์ ์ ๋ํ ์ด๋ฅผ ๊ฐ๊ธฐ์ ๋น์จ์ด ์ฌ๊ธฐ์์ ์ ๋ง ๋์ ๊ฒ ๊ฐ์ต๋๋ค.
@tamsky ๊ทธ๋ฆฌ๊ณ ๋น๋๊ฐ ํ ๊ณณ์์๋ ์๋ํ์ง๋ง ๋ค๋ฅธ ๊ณณ์์๋ ์๋ํ์ง ์๋ ์ํฉ์ด ์์ต๋๋ค.
๋๋ ์ด๋ค ๊ฒฝ์ฐ๋ฅผ ๋
ผํ๋ ๊ฒ์ด ์๋๋ผ ์๋ ๊ทธ๋๋ก์ ์ด์ ๋ฅผ ์ค๋ช
ํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ํ... ๋๋ถ๋ถ์ ๊ฒ๋ค์ ์ด๋ค ์ข
๋ฅ์ ํน๊ถ ์ก์ธ์ค๋ ํ์ํ์ง ์์ผ๋ฉฐ ํน๊ถ ์ก์ธ์ค๊ฐ ํ์ํ ๊ฒ๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์ค์น๊ฐ ์๋ํ๋ ๋ฐ _์ค์ ๋ก_ ํ์ํ์ง ์์ต๋๋ค. ์ด๋ก ์ธํด ์ค์น์ ์คํจํ๋ฉด ํด๋น ์ค์น ํ๋ก๊ทธ๋จ์ด ์์๋ฉ๋๋ค(์: ์ธ์ฉ๋ tomcat ๋ฌธ์ ์ ๊ฒฝ์ฐ).
์ด๋ฌํ ๊ธฐ๋ฅ์ ํ์ฑํํ๋ฉด ์ฌ๋๋ค์ด ๋น๋ฉดํ ์ค์ ๋ฌธ์ ๋ฅผ ์ค์ ๋ก ํด๊ฒฐํ๋ ๋์ ํน๊ถ ๋ชจ๋๋ก ์คํํ๋๋ก ๊ถ์ฅํฉ๋๋ค.
@cpuguy83
๊ทธ๋ฆฌ๊ณ ๋น๋๊ฐ ํ ๊ณณ์์๋ ์๋ํ์ง๋ง ๋ค๋ฅธ ๊ณณ์์๋ ์๋ํ์ง ์๋ ์ํฉ์ด ์์ต๋๋ค.
์ ์ ๋์ ์ฐ๋ฆฌ๊ฐ _policy_๊ฐ ๋ค๋ฅด๊ณ ์ผ๋ถ ๋น๋๋ ํ ๊ณณ์์ ์๋ํ์ง๋ง ๋ค๋ฅธ ๊ณณ์์๋ ์๋ํ์ง ์๋ ์ธ๊ณ๋ก ๋ง๋ฒ์ฒ๋ผ ์ด๋ํ๋ค๊ณ ์์ํด ๋ณด์ธ์...
์ด๊ฒ ์ ํฐ์ผ์ด์ผ?
์ ํํ ๋๊ฐ ์ ๊ฒฝ์ฐ๋์?
Docker Inc๋ "๋ชจ๋ ๋น๋๋ ๋ชจ๋ ๊ณณ์์ ์๋ํด์ผ ํจ"์ด๋ผ๋ ๊ฐ์ฅ ๋ฎ์ ๊ณตํต ๋ถ๋ชจ์ ์ง์ธ/์๊ตฌ ์ฌํญ์ด ์ค์ ๋ก ์ค์ ๊ณ ๊ฐ์ ์๊ตฌ๋ฅผ ๋ฌด์ํ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๊น?
ํ์ฌ ์ ์ฑ ์ ๊ณ ๊ฐ์ด "๋์ปค์์ X๋ฅผ ๋น๋"ํ๊ธฐ ์ํ ์์ง๋์ด๋ง ๋น์ฉ์ ์ธ๋ถํํ๋ ๊ฒ์ ๋๋ค.
docker์์ ์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋์ "์ด๋ค ์ข ๋ฅ์ ๊ถํ ์ก์ธ์ค๊ฐ ํ์ํ์ง ์์"(๊ทธ๋ฌ๋ ์ค์ ๋ก๋) ์ ์ธ๊ณ์ ๋ชจ๋ ํ์ฌ ํ๋ก์ ํธ๋ฅผ ๋จผ์ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ๋์ปค ๋น๋ ์ฌ๋ก๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์์ญ์ด ํจ์น๋ฅผ ์ ์ฉํด์ผ ํฉ๋๋ค.
๊ฒฐ๊ตญ Docker๊ฐ ์ฌ๋ฌ ํ๋ซํผ์์ ์คํ๋ ๊ฒฝ์ฐ 'docker ๋น๋'๋ ๋ชจ๋ ์์คํ ์์ ๋์ผํ๊ฒ ์๋ํ์ง ์์ต๋๋ค. ์ฆ, Windows ์ปจํ ์ด๋, Solaris ์ปจํ ์ด๋ ๋๋ ARM Linux ์ปจํ ์ด๋์ ๋น๋๋ x86-64 Linux์์์ ๋์ผํ์ง ์์ต๋๋ค. ์ด๋ค์ ๋ํ ๋ณด์ ์ปจํ ์คํธ๋ ํ๋ซํผ์ ๋ฐ๋ผ ๋ค๋ฅผ ๊ฒ์ ๋๋ค.
์ฆ, @cpuguy83 , Dockerfile์ด ๋ณดํธ์ ์ผ๋ก ์ ์ง๋ ๊ฒ์ด๋ผ๊ณ ํญ์ ๊ฐ์ ํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ค ์ฌ์ด์ ์ผ๋ง๋ ๋ง์ ์ฐจ์ด๊ฐ ์๋์ง ์ต์ํํด์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ํ๋ ์ฌ์ฉ์๋ฅผ ์ํ ๊ณ ๋ ค ์ฌํญ์ ์ํํ๊ธฐ๋ ํ์ง๋ง ๊ถ๊ทน์ ์ผ๋ก ๋ค์ค ์ํคํ ์ฒ/๋ค์ค ํ๋ซํผ ์ง์๊ณผ ๊ด๋ จํ์ฌ ๋ฐ์ํด์ผ ํ๋ ๋ํ์ ํฌํจํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ก๋๋ ์ฑ ๊ฐ์ท ํ๋กํ ๋๋ฌธ์ ๋น๋๊ฐ ๋ชจ๋ ๊ณณ์์ ์๋ํ์ง ์์ต๋๋ค.
๋ํ ์ด๋ฏธ์ง๋ก ๊ตฌ์ด ์ฌ์ ์บ์๋ ๋์ปค ์ปจํ
์ด๋์ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํ์๊ฒ ์ต๋๊น?
2014๋ 18์ 11์ผ 2์ 53๋ถ์ tamsky [email protected]์ด ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@cpuguy83
๊ทธ๋ฆฌ๊ณ ๋น๋๊ฐ ํ ๊ณณ์์๋ ์๋ํ์ง๋ง ๋ค๋ฅธ ๊ณณ์์๋ ์๋ํ์ง ์๋ ์ํฉ์ด ์์ต๋๋ค.
์ ์ฑ ์ด ๋ค๋ฅด๊ณ ์ผ๋ถ ๋น๋๋ ํ ๊ณณ์์ ์๋ํ์ง๋ง ๋ค๋ฅธ ๊ณณ์์๋ ์๋ํ์ง ์๋ ์ธ๊ณ๋ก ๋ง๋ฒ์ฒ๋ผ ์ด๋ํ๋ค๊ณ ์ ์ ์์ํด ๋ณด์ธ์...
์ด๊ฒ ์ ํฐ์ผ์ด์ผ?
์ ํํ ๋๊ฐ ์ ๊ฒฝ์ฐ๋์?Docker Inc๋ "๋ชจ๋ ๋น๋๋ ๋ชจ๋ ๊ณณ์์ ์๋ํด์ผ ํจ"์ด๋ผ๋ ๊ฐ์ฅ ๋ฎ์ ๊ณตํต ๋ถ๋ชจ์ ์ง์ธ/์๊ตฌ ์ฌํญ์ด ์ค์ ๋ก ์ค์ ๊ณ ๊ฐ์ ์๊ตฌ๋ฅผ ๋ฌด์ํ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๊น?
ํ์ฌ ์ ์ฑ ์ ๊ณ ๊ฐ์ด "๋์ปค์์ X๋ฅผ ๋น๋"ํ๊ธฐ ์ํ ์์ง๋์ด๋ง ๋น์ฉ์ ์ธ๋ถํํ๋ ๊ฒ์ ๋๋ค.
docker์์ ์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋์ "์ด๋ค ์ข ๋ฅ์ ๊ถํ ์ก์ธ์ค๊ฐ ํ์ํ์ง ์์"(๊ทธ๋ฌ๋ ์ค์ ๋ก๋) ์ ์ธ๊ณ์ ๋ชจ๋ ํ์ฌ ํ๋ก์ ํธ๋ฅผ ๋จผ์ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ๋์ปค ๋น๋ ์ฌ๋ก๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์์ญ์ด ํจ์น๋ฅผ ์ ์ฉํด์ผ ํฉ๋๋ค.
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ํ์ ํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
์ด ์ํฉ์์ "๊นจ์ง" ๊ฒ์ "์ค์น ํ๋ก๊ทธ๋จ"์ด ์๋๋ผ Tomcat 7์ ๋๋ค. ์ ๋ Tomcat์ Apache ๋ฐ MySQL๊ณผ ํตํฉํ๋ Bitnami์ Tomcat ์คํ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. Docker๋ ์์ค, ๊ตฌ์ฑ, ํตํฉ, ํ ์คํธ ๋ฐ ํจํค์ง ์๋น์ค์ ๊ณต๊ธ๋ง ๋์ ์์ต๋๋ค. Tomcat์ "์์ "ํ๋๋ก ์๊ตฌํ๋ฉด ์ด ๊ณต๊ธ๋ง์ ์ด์ฉํ ์ ์์ต๋๋ค. Tomcat์ "์์ "ํ๋ ๊ฒ๋ณด๋ค ์์ผ๋ก ์ํ๋ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๊ฒ์ด ํจ์ฌ ์ฝ์ต๋๋ค("--privileged"๋ก ์ปจํ ์ด๋ ์์, ์ค์น ํ๋ก๊ทธ๋จ ์คํ, ์ปจํ ์ด๋ ์ค๋ ์ท ๋ฑ).
+1
์๋ฆฌ์ฌ ์ญํ ์ ๋ชจ๋ ufw๋ฅผ ์ฌ์ฉํ์ฌ ํฌํธ๋ฅผ ์ฌ๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ์๊ธฐ ๋๋ฌธ์ docker๋ก ํฌํ
ํ ์ ์์ต๋๋ค.
๋น๋์ --privileged๋ฅผ ์ถ๊ฐํ๋ฉด ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
+1. ๋ด Dockerfiles์ ๋จ๊ณ๋ก debootstrap์ ๊ฐ์ง ์ ์์ต๋๋ค.
+1. ๋ด Dockerfiles์ ๋จ๊ณ๋ก debootstrap์ ๊ฐ์ง ์ ์์ต๋๋ค.
Dockerfile/build๋ฅผ ํตํด chroot๋ฅผ ๋น๋ํ๋ ๊ฒ์ด ์์ฐ์ค๋ฌ์ด ๊ฒ์ฒ๋ผ ๋ณด์์ง๋ง @fbrusch๊ฐ ์ธ๊ธํ ๊ฒ๊ณผ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
FROM ubuntu:utopic
ENV HOME /root
RUN sudo apt-get update
RUN sudo apt-get install -y eatmydata
RUN for i in /usr/bin/apt*; do sudo ln -s /usr/bin/eatmydata $(basename $i); done
RUN sudo apt-get install -y debootstrap qemu-user-static binfmt-support
RUN sudo debootstrap --foreign --arch arm64 trusty ubuntu-arm64-chroot
RUN ls ubuntu-arm64-chroot
RUN sudo cp /usr/bin/qemu-aarch64-static ubuntu-arm64-chroot/usr/bin
RUN sudo cp /etc/resolv.conf ubuntu-arm64-chroot/etc
RUN sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C chroot ubuntu-arm64-chroot /debootstrap/debootstrap --second-stage; sudo cat ubuntu-arm64-chroot/debootstrap/debootstrap.log
์คํจ:
Step 11 : RUN sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C chroot ubuntu-arm64-chroot /debootstrap/debootstrap --second-stage; sudo cat ubuntu-arm64-chroot/debootstrap/debootstrap.log
---> Running in 2654257e860a
I: Keyring file not available at /usr/share/keyrings/ubuntu-archive-keyring.gpg; switching to https mirror https://mirrors.kernel.org/debian
W: Failure trying to run: mount -t proc proc /proc
W: See //debootstrap/debootstrap.log for details
gpgv: Signature made Thu May 8 14:20:33 2014 UTC using DSA key ID 437D05B5
gpgv: Good signature from "Ubuntu Archive Automatic Signing Key <[email protected]>"
gpgv: Signature made Thu May 8 14:20:33 2014 UTC using RSA key ID C0B21F32
gpgv: Good signature from "Ubuntu Archive Automatic Signing Key (2012) <[email protected]>"
mount: block device proc is write-protected, mounting read-only
mount: cannot mount block device proc read-only
---> de534a4e5458
Removing intermediate container 2654257e860a
Successfully built de534a4e5458
RUNP
๋์ --insecure
๋น๋ ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
๋ชจ๋ RUN ๋ช
๋ น์ ๋ํด ํ์ ์ปจํ
์ด๋๋ --add-cap=all
๋ก ์คํ๋ฉ๋๋ค. ํน๊ถ ๋์ ๋ค๋ฅธ ์ผ๋ ์ํํ๊ธฐ ๋๋ฌธ์ ํน๊ถ ๋์ ...
๊ทธ๋ฌ๋ ์ค์ ๋ก ์ด๊ฒ์ ํ๋๊ทธ๋ฅผ ์์ ํ์ง ์๊ณ ๋ ํ์ํ ๊ฒฝ์ฐ ์ ์ฒด privileged
์ค์ ์ ๊ตฌํํ๋๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
@cpuguy83
RUN ๋ช
๋ น์ ๊ถํ์ ๋ถ์ฌํ๊ฑฐ๋ RUNP ๋ช
๋ น์ ํ์ฑํํ๋ ๋์ปค ๋น๋์ ์ ๋ฌ๋ ํ๋๊ทธ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒ์ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. Dockerfile์ ๋ณด๊ณ ๊ทธ ์์ ๋ช
๋ น์ด๋ ๋ฌด์์ธ๊ฐ๋ฅผ ํตํด ๊ถํ ์๋ ์ก์ธ์ค๊ฐ ํ์ํ๊ณ ๋ฐํ์์ 10๋จ๊ณ๋ก ์ด๋ํ์ฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๋์ ์์ํ ๋ Dockerfile ๊ถํ์ด ํ์ํ ๋ช
๋ น์ด ํฌํจ๋์ด ์์ต๋๋ค.
์ด ์ค๋ ๋๋ก ๋๋ฅผ ๋ฐ๋ ค์จ ์ฌ์ฉ ์ฌ๋ก๋ ๋ฐ์ธ๋ ๋ง์ดํธ์ด๋ฉฐ, ์ปจํ ์ด๋ ๋ด์์ ์ํํ ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ง๊ธ์ ๊ถํ ๋ชจ๋์์ ์ปจํ ์ด๋๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ์๋ง ์ํํ ์ ์์ต๋๋ค. ์์ํ ๋ ๋ช ๋ น์ ํจ๊ป ์ฐ๊ฒฐํ๊ฑฐ๋ ์คํํ๋ ค๋ ํ๋ก์ธ์ค ์ ์ ์์คํ ์ค์ ์ ์๋ฃํ๊ธฐ ์ํด ์คํ๋๋ ์ด๊ธฐํ ์คํฌ๋ฆฝํธ๋ฅผ ๊ฐ๋๋ก ํฉ๋๋ค.
Dockerfile์ ๋ค์์ ํฌํจํ ์ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
RUN mount --bind /dir1 /dir2
๋ด ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ๋ ์์ธํ ์ค๋ช ํ ๊ฒ์ด๋ฏ๋ก ์ด๋ ๊ด๋ฒ์ํ ๊ถํ ๋ถ์ฌ ๋ช ๋ น ์์ฒญ์ด ์๋๋๋ค. ์ ์ ํน๋ณํ ๊ฒฝ์ฐ๋ ์์ฉ ํ๋ก๊ทธ๋จ ์์ญ์ ๋ง์ดํธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ ๋ฐ์ธ๋ฉํ๊ณ ์ถ์ต๋๋ค.
์
/usr/local/application/data -> /mnt/data
/mnt/data -> HOST:/var/datasets/dataset1
์ด๊ฒ์ ์์ฉ ํ๋ก๊ทธ๋จ ์์ญ์ ์ง์ ๋ณผ๋ฅจ ๋ง์ดํธ๋ฅผ ์ํํ์ฌ ํด๊ฒฐํ ์๋ ์์ง๋ง ๊ณตํต ์์น์ ์ ๊ณตํ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ ์ปจํ ์ด๋๊ฐ ํน์ ๋งคํ์ ์ํํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ๋ํ symlinks๋ก ํด๊ฒฐํ ์ ์์ง๋ง ์ผ๋ถ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋์/๋ฐ์ดํฐ ํด๋๋ก symlink๋ฅผ ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ ์์น ๊ตฌ์ฑ์ ์ง์ํ๋ ๊ฒฝ์ฐ ๋ณผ๋ฅจ ๋ง์ดํธ ์์ญ์ ๊ฐ๋ฆฌํค๋๋ก ์ํํ ์๋ ์์ต๋๋ค. ๋ด ์ฌ์ฉ ์ฌ๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ ์์น ๊ตฌ์ฑ์ ์ง์ํ์ง ์์ผ๋ฉฐ ํ์ค์ ๋ฐ์ดํฐ์ ์์ฉ ํ๋ก๊ทธ๋จ ๊ณต๊ฐ์ ์ ์ ํ๊ฒ ๋ถ๋ฆฌํ๊ธฐ ์ํด ์ผ๋ถ ๋ฐ์ธ๋ ๋ง์ดํธ ๋๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ํํด์ผ ํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ํญ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
A -> B -> C๋ฅผ ์ํํ ์ ์๋ ์ด ๊ธฐ๋ฅ์ ํตํด ๋ฐ์ดํฐ ์ปจํ
์ด๋๋ฅผ ์ผ๋ฐ ์ํ๋ก ์ ์งํ๊ณ --volumes-from
๋ฅผ ์ ํ๋ฆฌ์ผ์ด์
๋ฐ ๋ฐ์ดํฐ ์ปจํ
์ด๋์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ์กฐํฉ์์ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค.
--volumes-from
์ปจํ
์ด๋ ์ฒด์ธ์ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ๋ฌ์ฑํ ์๋ ์์ต๋๋ค.
GenericDataContainer -> ApplicationDataContainer -> ApplicationContainer
์ด๊ฒ์ด ์ ๋ต์ผ ์ ์์ง๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์ด๋๊ฐ ๋ฐ์ธ๋ ๋ง์ดํธ๋ฅผ ์คํํ ์ ์๋ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ํ ๋ ๋ค๋ฅธ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค.
์ค๋์ ์ปจํ ์ด๋๋ฅผ ๊ถํ ๋ชจ๋๋ก ์คํํ ๋ค์ ๋ง์ดํธ ๋ฐ์ธ๋๋ฅผ ์คํํ์ฌ ์ด๋ฅผ ๋ฌ์ฑํ ์ ์์ง๋ง ์๋์์ ๋ณผ ์ ์๋ฏ์ด ํด๋น ๋ง์ดํธ ๋ฐ์ธ๋๋ฅผ ์ง์ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ผ๋ฉฐ ์ปจํ ์ด๋๋ฅผ ์์ํ ๋๋ง๋ค ์ฌ์ค์ ํด์ผ ํฉ๋๋ค. . ์ปค๋ฐ ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ์ ์ง๋ฉ๋๋ค.
๋ด ํน์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ๋๋ต์ 3์ฒด์ธ ์ปจํ ์ด๋ ์ ๊ทผ ๋ฐฉ์ ๋๋ ์ด๊ธฐํ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ ์ ์์ง๋ง Dockerfile์์ ์ปจํ ์ด๋ ๋ด(๋๋ ๊ธฐํ ๊ถํ ์๋ ๋ช ๋ น)๋ฅผ ๋ฐ์ธ๋ฉํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ์ฐ๊ฒฐ ๋ฐ์ดํฐ ์ปจํ ์ด๋๋ก ํด๊ฒฐํ ์ ์๋ ํธ์คํธ ๋ ์ปจํ ์ด๋ ๋งคํ์ ํฌํจํ์ง ์๋ ์ค๋ช ํ ์ ์๋ ๋ฐ์ธ๋ ๋ง์ดํธ์ ๋ํ ๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ๋ฐ์ธ๋ ๋ง์ดํธ ํน์ ๋ฌธ์ ์ ๊ด๋ จ์ด ์๋์ง ํ์คํ์ง ์์ง๋ง ๋์ปค ์ปค๋ฐ์ ์ํํ ๋ ๊ถํ ์๋ ๋ช
๋ น์ ๊ฒฐ๊ณผ๊ฐ ์ง์๋๋ฉด ๋์ปค ์ด๋ฏธ์ง ๋น๋์ ๋์ปค ์ด๋ฏธ์ง ์คํ์ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค. ๋์ปค ๋น๋๋ฅผ ์ํํ๋ ์์ญ์ ์ ์ดํ ์ ์์ผ๋ฉฐ ์ต์ข
์ฌ์ฉ์๋ ๊ถํ ์๋ ๋ชจ๋์์ ์คํํ ์ ์๋ ์ปค๋ฐ๋ ์ปจํ
์ด๋๋ง ๊ฐ์ ธ์ต๋๋ค. ์ด๊ฒ์ ํ์ฌ ๋ฐ์ธ๋ ๋ง์ดํธ ๋ฐ ์ปค๋ฐ์ ์คํํ ๋ ์์ธ์ด ์๋๋๋ค. ์ด๊ฒ์ /proc/mounts
์๋ ๋ฐฉ์๊ณผ ๋ ๊ด๋ จ์ด ์์ ์ ์์ต๋๋ค.
๋ค์์ ๊ฐ๋จํ ์์ ๋๋ค.
[root@ip-10-0-3-202 ~]# docker run --privileged -i -t --name test_priv centos:centos6 /bin/bash
[root<strong i="17">@d1d037cb170c</strong> /]# cat /proc/mountsย
rootfs / rootfs rw 0 0
/dev/mapper/docker-202:1-25352538-d1d037cb170c12dab94ebd01c56807210cf2aec50bef52c944f89225c8346827 / ext4 rw,seclabel,relatime,discard,stripe=16,data=ordered 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,mode=755 0 0
shm /dev/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666 0 0
sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
/dev/xvda1 /etc/resolv.conf xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
/dev/xvda1 /etc/hostname xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
/dev/xvda1 /etc/hosts xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
tmpfs /run/secrets tmpfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
devpts /dev/console devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
๋ฐ์ธ๋ ๋ง์ดํธ ์์ ๋ฅผ ๋ง๋ค๊ณ symlink ์์ ๋ ๋ง๋ญ๋๋ค.
[root<strong i="6">@d1d037cb170c</strong> /]# mkdir /var/data1
[root<strong i="7">@d1d037cb170c</strong> /]# mkdir /var/data2
[root<strong i="8">@d1d037cb170c</strong> /]# mount --bind /var/data1 /var/data2
[root<strong i="9">@d1d037cb170c</strong> /]# ln -s /var/data1 /var/data3
Show ํ์ผ์ 3๊ฐ์ ๋๋ ํ ๋ฆฌ ๋ชจ๋์์ ๋ณผ ์ ์์ต๋๋ค.
[root<strong i="13">@d1d037cb170c</strong> /]# touch /var/data1/test
[root<strong i="14">@d1d037cb170c</strong> /]# ls /var/data1
test
[root<strong i="15">@d1d037cb170c</strong> /]# ls /var/data2
test
[root<strong i="16">@d1d037cb170c</strong> /]# ls /var/data3
test
/proc/mounts
์
๋ฐ์ดํธ๋จ
[root<strong i="21">@d1d037cb170c</strong> /]# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/mapper/docker-202:1-25352538-d1d037cb170c12dab94ebd01c56807210cf2aec50bef52c944f89225c8346827 / ext4 rw,seclabel,relatime,discard,stripe=16,data=ordered 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,mode=755 0 0
shm /dev/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666 0 0
sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
/dev/xvda1 /etc/resolv.conf xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
/dev/xvda1 /etc/hostname xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
/dev/xvda1 /etc/hosts xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
tmpfs /run/secrets tmpfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
devpts /dev/console devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
/dev/mapper/docker-202:1-25352538-d1d037cb170c12dab94ebd01c56807210cf2aec50bef52c944f89225c8346827 /var/data2 ext4 rw,seclabel,relatime,discard,stripe=16,data=ordered 0 0
์ค์งํ๋ ์ปจํ ์ด๋๋ฅผ ์ข ๋ฃํ ๋ค์ ๋ค์ ์์ํ์ญ์์ค.
[root<strong i="25">@d1d037cb170c</strong> /]# exit
[root@ip-10-0-3-202 ~]# docker start -a -i test_priv
test_priv
/proc/mounts
์ ๋ฐ์ธ๋ ๋ง์ดํธ๊ฐ ์์ต๋๋ค.
[root<strong i="7">@d1d037cb170c</strong> /]# cat /proc/mountsย
rootfs / rootfs rw 0 0
/dev/mapper/docker-202:1-25352538-d1d037cb170c12dab94ebd01c56807210cf2aec50bef52c944f89225c8346827 / ext4 rw,seclabel,relatime,discard,stripe=16,data=ordered 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,mode=755 0 0
shm /dev/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666 0 0
sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
/dev/xvda1 /etc/resolv.conf xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
/dev/xvda1 /etc/hostname xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
/dev/xvda1 /etc/hosts xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
tmpfs /run/secrets tmpfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
devpts /dev/console devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
Symlink๋ ์ด์๋จ์์ง๋ง ๋ฐ์ธ๋ ๋ง์ดํธ๋ ์๋๋๋ค.
[root<strong i="11">@d1d037cb170c</strong> /]# ls /var/data1
test
[root<strong i="12">@d1d037cb170c</strong> /]# ls /var/data2
[root<strong i="13">@d1d037cb170c</strong> /]# ls /var/data3
test
[root<strong i="14">@d1d037cb170c</strong> /]#
๋ฐ์ธ๋ ๋ง์ดํธ ์ฌ์ค์
[root<strong i="18">@d1d037cb170c</strong> /]# mount --bind /var/data1 /var/data2
์ปจํ
์ด๋๋ฅผ ์ข
๋ฃํ๋ ๋์ ctrl+p
ctrl+q
๋ก ๋ถ๋ฆฌํ ๋ค์ ์ปจํ
์ด๋๋ฅผ ์ปค๋ฐํฉ๋๋ค.
์ปจํ ์ด๋๋ฅผ ์ ์ด๋ฏธ์ง๋ก ์ปค๋ฐํ๊ณ ๋น๊ฐ์ธ ๋ชจ๋์ ์ด๋ฏธ์ง์์ ์ ์ปจํ ์ด๋ ์์
[root@ip-10-0-3-202 ~]# docker commit test_priv test_priv
74305f12076a8a6a78f492fd5f5110b251a1d361e63dda2b167848f59e3799e2
[root@ip-10-0-3-202 ~]# docker run -i -t --name test_nonpriv test_priv /bin/bash
/proc/mounts
๋ฐ์ธ๋ ๋ง์ดํธ๊ฐ ๋๋ฝ๋์์ต๋๋ค. ๋ฌด์์ด ์ถ๊ฐ /proc/[sys,sysrq-trigger,irq,bus,kcore] ๋ง์ดํธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋์ง ํ์คํ์ง ์์ต๋๋ค.
[root<strong i="5">@ba1ba4083763</strong> /]# cat /proc/mountsย
rootfs / rootfs rw 0 0
/dev/mapper/docker-202:1-25352538-ba1ba40837632c3900e4986b78d234aefbe678a5ad7e675dbab7d91a9a68469e / ext4 rw,context="system_u:object_r:svirt_sandbox_file_t:s0:c327,c505",relatime,discard,stripe=16,data=ordered 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev tmpfs rw,context="system_u:object_r:svirt_sandbox_file_t:s0:c327,c505",nosuid,mode=755 0 0
shm /dev/shm tmpfs rw,context="system_u:object_r:svirt_sandbox_file_t:s0:c327,c505",nosuid,nodev,noexec,relatime,size=65536k 0 0
devpts /dev/pts devpts rw,context="system_u:object_r:svirt_sandbox_file_t:s0:c327,c505",nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666 0 0
sysfs /sys sysfs ro,seclabel,nosuid,nodev,noexec,relatime 0 0
/dev/xvda1 /etc/resolv.conf xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
/dev/xvda1 /etc/hostname xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
/dev/xvda1 /etc/hosts xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
tmpfs /run/secrets tmpfs rw,context="system_u:object_r:svirt_sandbox_file_t:s0:c327,c505",nosuid,nodev,noexec,relatime 0 0
devpts /dev/console devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
proc /proc/sys proc ro,nosuid,nodev,noexec,relatime 0 0
proc /proc/sysrq-trigger proc ro,nosuid,nodev,noexec,relatime 0 0
proc /proc/irq proc ro,nosuid,nodev,noexec,relatime 0 0
proc /proc/bus proc ro,nosuid,nodev,noexec,relatime 0 0
tmpfs /proc/kcore tmpfs rw,context="system_u:object_r:svirt_sandbox_file_t:s0:c327,c505",nosuid,mode=755 0 0
์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ์ด์ ๋จ์์ต๋๋ค.
[root<strong i="9">@ba1ba4083763</strong> /]# ls /var/data1
test
[root<strong i="10">@ba1ba4083763</strong> /]# ls /var/data2
[root<strong i="11">@ba1ba4083763</strong> /]# ls /var/data3
test
[root<strong i="12">@ba1ba4083763</strong> /]# exit
๋ด๊ฐ ํ์ฌ ์ฌ์ฉํ๊ณ , ๋ด ๋น๋ ๋จ๊ณ์์ ๊ณ ์ ํ์๊ธฐ ์ด๋ฏธ์ง๋ฅผ ์คํํ๋ ค๊ณ dind์ . ๊ทธ๋ ๋ค๋ฉด ํ์ฌ ๋น๋์์ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์คํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์ฌ๋ฌ๋ถ, ์ด๊ฒ์ ์ํ๋ค๋ฉด '/usr/bin/unshare -f -m -u -i -n -p -U -r -- /path/to/binary'๋ฅผ ์๋ํ์ญ์์ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ฉ์ ๋ค์์คํ์ด์ค๊ฐ ์๋ ๋น๋ ๋ด๋ถ์ ์ปจํ ์ด๋๊ฐ ์์ฑ๋ฉ๋๋ค. ํ์์ ๋ฐ๋ผ ๊ณต์ ํด์ ์ต์ ์ ์กฐ์ ํ ์ ์์ต๋๋ค. ๋๋ ์ค์ ๋ก ์ด๊ฒ์ ์ฌ์ฉํ์ฌ '/sbin/capsh'๋ฅผ ์คํํ์ฌ ๋ด ํ๋ก์ธ์ค์ ๊ธฐ๋ฅ์ ์ธ๋ถ์ ์ผ๋ก ์ค์ ํฉ๋๋ค.
์ด๊ฒ์ด ๊ถํ ์๋ ๋น๋์ ๋ํ ๋ชจ๋ ์ฌ์ฉ์ ์ฌ๋ก๋ฅผ ํด๊ฒฐํ ๊ฒ์ด๋ผ๊ณ ๋งํ ์๋ ์์ง๋ง ์ผ๋ถ ์ฌ์ฉ์์๊ฒ๋ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
๋๋ ์ด๊ฒ์ด Docker ์์ฒด์ ์ผ๋ถ๊ฐ ๋์ด์ผ ํ๊ณ ์ฌ์ฉ์ ๋ค์์คํ์ด์ค์ ํตํฉ์ด ์งํ ์ค์ธ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
@saulshanabrook ์ ํํ๊ฐ ์๋๋ผ ๋น๋์์ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์คํํ ์ ์์ต๋๋ค. ํ๋ฃจ ๋นจ๋ฆฌ ์ด๊ฒ์ด ๊ฐ๋ฅํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋๋ ์ด๊ฒ์ ๋ํด ์ฝ๊ฐ์ ์กฐ์ฌ๋ฅผ ํ๊ณ VFS ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ ํ ๋น๋ ๋ด์์ '๋์ปค ํ'์ ์ํํ ์ ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ํธ๋ฆฌํ๊ฒ๋ '๋์ปค ์ ์ฅ'๋ ์๋ํฉ๋๋ค.
๋์ปค ์ด๋ฏธ์ง๋ฅผ ์คํํ๋ ค๋ ์ฌ๋์๊ฒ๋ ์ค์ ์๋ฃจ์ ์ด ์๋์ง๋ง '๊ณต์ ํด์ ' ๋ฐ '์บก์'๊ฐ ์๋ํ๋ฏ๋ก ๊ถํ์ด ์๋ ์ปจํ ์ด๋์์ ์ปจํ ์ด๋์ ๊ฐ์ ๋ฐํ์์ ์ํํ ์ ์์ต๋๋ค(์: ๋น๋ ์ค ). ํ๋ฆผ์์ด '๋์ปค ์คํ'์ ์๋ตํ๊ณ ์ด ๋จ๊ณ๋ฅผ ์๋์ผ๋ก ์ํํ๊ณ ์ด๋ฏธ์ง๋ฅผ ๋์ปค์ ๋ค์ ์ปค๋ฐํ ์ ์์ต๋๋ค. ์ค๋์ ๋๋ถ๋ถ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋น๋ก ๋ชจ๋ ๊ฒ์ ํ๋ก ๋ฌถ์ง๋ ์๋๋ผ๋ ๋ง์ ๋๋ค. ๋ฌผ๋ก ๊ฒฐ๊ตญ์๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ด Docker ์์ฒด์ ๋ค์ด๊ฐ์ผ ํฉ๋๋ค.
RUNP๋ฅผ ํตํ ๋์ปค ํ์ ๊ฒฝ์ฐ +1
docker build ๊ถํ ์๋ ์คํ์ด ๋ถ๊ฐ๋ฅํ๋ฉด ์ ธ ๋ฐ docker ์ปค๋ฐ์ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ๋น๋๋ฅผ ์น๊ฒฉํ์ฌ Dockerfile์ ๋ฌด์๋ฏธํ๊ฒ ๋ง๋ญ๋๋ค. ๋์ปค ๋น๋์ ๊ถํ ์๋ ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ๋น๋์ ๊ถํ ์๋ ๋น๋ ์ฌ์ด์ ์ ์ ๊ทธ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๊ทธ ๋ผ์ธ์ ํ๋๊ทธ๊ฐ ์คํ์ ์ถ๊ฐ๋์์ ๋ ์ด๋ฏธ ๊ทธ๋ ค์ก๊ณ ์ง์๋์ด์ผ ํฉ๋๋ค.
+1 ์ด๊ฒ์ ์ฃผ์ด์ง ์์ ์์ ์ฌํ ๊ฐ๋ฅํ ๋์ปค ์ปจํ ์ด๋๋ฅผ ๋ง๋ญ๋๋ค(๋์ปค ํ์ผ๋ง ๊ฐ์ง๊ณ ๋ค๋ ํ์๊ฐ ์์)
+1 ์ด์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ด ๊ฐ๋ฅํ ๊ธฐ๋ณธ ์ญํ ์ ์์ ํ ๋ถํดํด์ผ ํฉ๋๋ค. ๋์ปค ์ฑํ์ผ๋ก ๊ธฐ์กด์ ๋ง์ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ๋ฅผ ์ ๋ง๋ก ๋ฐ๋์ง๋ง ์ด๋ฏธ ํฌ๊ธฐ์ ๋ํ ์ฌ์ฉ์ ์ง์ ์ญํ ์ ์์ฑํ์ ๋ฟ๋ง ์๋๋ผ ์ด์ ์ด์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํฉ๋๋ค.
@lsjommer ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๋์? --privileged๋ ์ปจํ ์ด๋๋ฅผ ์คํํ๋ ์์ ํ ์์ ํ์ง ์์ ๋ฐฉ๋ฒ์ด๋ฉฐ ์ปจํ ์ด๋์ ์ฌ์ฉ์์๊ฒ ํธ์คํธ์ ๋ํ ์ ์ฒด ๋ฃจํธ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
์ด๊ฒ์ ๊ตฌํํ์ง ๋ง์๋ ๊ฒ์ด ์๋๋ผ ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ๋ ๋ด์ฉ์ ๋ํด ์ค์ ๋ก ์์๋ณด๋๋ก ํฉ์๋ค.
๋ํ ๋๊ตฐ๊ฐ๊ฐ ์ํ๋ ๊ฒฝ์ฐ ๊ตฌํํ๊ธฐ๊ฐ ์๋์ ์ผ๋ก ์ฌ์ธ ๊ฒ์ ๋๋ค ...
@cpuguy83 ์ด๊ฒ์ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ธฐ ์ํด ๋์ปค ์ปจํ
์ด๋์ ์ฑํํ๋ ค๊ณ ํ๋ ์ฐ๋ฆฌ์ ํ์ค "๋ฒ ์ด๋ฉํ" ๊ธฐ๋ณธ ์ญํ ์ด๋ฉฐ, ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ์ง๋ง ์ปจํ
์ด๋ ๋น๋์์ ๊ท์ฐฎ๊ฒ ํ ํ์์กฐ์ฐจ ์์ต๋๋ค. ์ปจํ
์ด๋ ํธ์คํธ์์๋ง ์คํํด์ผ ํฉ๋๊น?
http://pastebin.com/P3QQxjNQ
Docker๊ฐ ๋ฆฌ์์ค ๊ณต์ ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์์ ํ ์ดํดํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ์ธ์ ํฉ๋๋ค.
@ljsommer ๋ฐ๋ผ์ shm์ ์ค์ ํ๋ ๊ฒ์ ์์ ํ ๋ค๋ฅธ ์ง์น์ด๋ฉฐ RUN ๋ช
๋ น ๊ฐ์(๋๋ ์ค์ ๋ก docker run
) ์ง์๋์ง ์์ต๋๋ค.
@cpuguy83 ์, ์ปจํ
์ด๋ ํธ์คํธ ์์ฒด์ ๋ํ ๊ธฐ์ค์ ์ผ๋ก ์ด๋ํ ์ ์๋ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ ๊ฒ์ ์ณค๋ค๋ ์ ์์ ์ด๊ฒ์ด ๋๋ถ๋ถ ์ ์๋ชป์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์๊ฐ์ ๋ด์ด ๋ต๋ณํด ์ฃผ์
์ ๊ฐ์ฌ ๋๋ฆฌ๋ฉฐ ๋ถ๋ง์ ์ ๊ธฐํ๊ธฐ ์ ์ ์์ ์ ์ ์ ํ๊ฒ ๊ต์กํ์ง ๋ชปํ ๊ฒ์ ๋ํด ์ฌ๊ณผ๋๋ฆฝ๋๋ค.
;)
๋น๋ ํ๋ก์ธ์ค ์ค ์คํ/๊ถํ์ ๋ํ ์์ด๋์ด๊ฐ ์์ต๋๊น?
์ง์ ๋ IP ์ฃผ์์ ๋ํ ๋์ปค ์ก์ธ์ค๋ฅผ ์ ํํ๊ธฐ ์ํด IP ํ
์ด๋ธ์ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋๋ ๋ํ RUNP ๋ฐ/๋๋ "docker build --privileged"๋ฅผ ์ํฉ๋๋ค.
FROM ubuntu:latest
MAINTAINER xyz
RUN apt-get -qq update
RUN apt-get -yq install iptables
RUN iptables -t nat -I OUTPUT -p tcp --dport 443 -j DNAT --to-destination 127.0.0.1:8080 && iptables-save > /etc/iptables.rules
์ด Dockerfile์ ๋ค์ ์ค๋ฅ๋ก ์ธํด ์๋ํ์ง ์์ง๋ง "docker run --privileged"๋ก ์ํํ๋ฉด ์๋ํฉ๋๋ค...
getsockopt failed strangely: Operation not permitted
@malcm , @ RUNP
๊ฐ์ ๊ฒ์ด ์๋๋ผ๋ iptables ๊ท์น์ด ํ์ผ ์์คํ
์ ์ ์ง๋์ง ์๊ธฐ ๋๋ฌธ์ ์ด ์๋๋ฆฌ์ค์์๋ ์๋ํ์ง ์์ต๋๋ค.
์ค๋ช
ํ๊ฒ ์ต๋๋ค: RUN x
ํ๋ฉด Docker๋ x
๋ฅผ ์คํํ ๋ค์ ํ์ผ ์์คํ
์ ์ค๋
์ท์ ๋ง๋ญ๋๋ค. ํ์ผ ์์คํ
์ธ๋ถ์ ํญ๋ชฉ(์คํ ์ค์ธ ํ๋ก์ธ์ค, ๋ผ์ฐํ
ํ
์ด๋ธ, iptables ๊ท์น, sysctl ์ค์ ...)์ Docker ์ด๋ฏธ์ง์ ์ ์ฅ๋์ง ์์ต๋๋ค.
์ฌ์ฉ์ ์ ์ iptables ๊ท์น์ ์ํ๋ ๊ฒฝ์ฐ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
--name myapp
์ปจํ
์ด๋ ์์docker run --net container:myapp --privileged iptablesimage iptables -t nat ...
์ ๊ฐ์ด iptables ๊ท์น์ ์ค์ ํ๊ธฐ ์ํด ๋ค๋ฅธ ์ปจํ
์ด๋, ๊ถํ ์๋ ์์ท ์์๋ง์ด ๋ผ?
@jpetazzo : ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ์ ๊ฒฝ์ฐ์๋ ์๋์ ๊ฐ์ด iptables ๊ท์น์ด ํ์ผ ์์คํ ์ ๋ฐ์ดํฐ๋ก ์ ์ง๋๋๋ก ๋ ๋ฒ์งธ ๋ช ๋ น์ ๋ฃ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด --privileged ์ต์ ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ํ ํ iptables ๊ท์น์ ๋ก๋ํ ์ ์์ต๋๋ค.
RUN do-something-with-iptables && iptables-save > /etc/iptables.rules
RUNP ๋๋ "build --privileged"๊ฐ ์์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํด์ผ ํฉ๋๋ค.
ADD iptables.rules /etc/
์, ์ด๊ฒ์ผ๋ก ์ถฉ๋ถํ ์ ์์ง๋ง ๋ด ์ ์ฅ์์ Dockerfile ์์ iptables.rules๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
๊ทธ๋์ ๋๋ RUNP๋ฅผ ์ํ๋ค(๋๋ ๋ถ๋๋ฝ๊ฒ ๊ฐ๊ณ ์ถ๋ค). :)
@jpetazzo @strib
iptables ๋ฌธ์ , ๋ง์ดํธ ๋ฐ ๊ธฐํ ๊ถํ ์๋ ์์
์ธ์๋ ํด๊ฒฐํด์ผ ํ ๋น๋ ์๋๋ฆฌ์ค๊ฐ ํ๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
VM ๋ฐฐํฌ ๋ฐ ๋ฒ ์ด๋ฉํ ์ค์น๋ฅผ ์ํ ์ดํ๋ผ์ด์ธ์ค๋ฅผ ๋ฐฐ์กํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ ์คํธ๋ฅผ ์ํด ์ปจํ ์ด๋ ํ๊ฒฝ์ ์ฌ์ฉํฉ๋๋ค. ์ฐจ๋ก๋ก ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์ดํ๋ผ์ด์ธ์ค ๋ด๋ถ์์ ์ปจํ ์ด๋๋ฅผ ์คํํฉ๋๋ค. ๋ฐ๋ผ์ ํ ์คํธ ์ปจํ ์ด๋๋ docker-in-docker๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด์ผ ํฉ๋๋ค. ์ด์ ํ ์คํธ ์ด๋ฏธ์ง์ ๋ฏธ๋ฆฌ ๋ก๋ํด์ผ ํ๋ ์๋น์ค ์ด๋ฏธ์ง๊ฐ ์๋ค๊ณ ์์ํด ๋ณด์ญ์์ค(ํ ์คํธ ์๊ฐ์ ์๋น์ค ์ด๋ฏธ์ง๊ฐ ๋ ์ง์คํธ๋ฆฌ์์ ๋ค์ด๋ก๋๋์ง ์๋๋ก). ์ง๊ธ ๋น์ฅ์ d-in-d๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ Dockerfile์ ๋น๋ํ๋ ๋์ ๊ถํ ๋ชจ๋์์ d-in-d ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. docker daemon will not start, "docker pull " ๋๋ "๋์ปค ๋ก๋"๊ฐ ์๋ํ์ง ์์ต๋๋ค.
RHEL7 ํธ์คํธ์์ ์คํํ ๋ ํ์ฌ ์ฌ์ฉ์๊ฐ ๋ฃจํธ์ธ ๊ฒฝ์ฐ su
๊ฐ ์คํจํ๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ด์ํ๊ฒ๋ ํ์ฌ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์ฌ์ฉ์๋ผ๋ฉด su
๊ฐ ์ ๋๋ก ์๋ํ์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์คํ ๋ช
๋ น ํ๋๊ทธ --add-cap=SYS_RESOURCE
. ๊ทธ๋ฌ๋ ์ด ๋ฌธ์ ๋ก ์ธํด ๋น๋ ๋จ๊ณ์์๋ ์ด ์์
์ ์ํํ ์ ์์์ต๋๋ค.
docker run
๋ฐ docker commit
ํ์ฌ Dockerfiles ์ฃผ์์ +1 ์คํฌ๋ฆฝํ
ํ๋ ๊ฒ์ ์ฐ์ค๊ฝ์ค๋ฝ์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ํฌํจ์ํค์ญ์์ค.
์ด ๊ธฐ๋ฅ์ ํ์์ฑ์ +1. ์ปจํ ์ด๋์ ๋ถ์ฌํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ํํ๋ ๊ตฌ์ฑ ํ์ผ์์ ์ ์ญ "๋ณด์ ์์ค"์ ๊ตฌ์ฑํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ ํ ๊ธฐ๋ณธ๊ฐ(์ค๋๋ ๊ณผ ๊ฐ์ด)์ด ์์ด์ผ ํ๋ฉฐ ์์คํ ๊ด๋ฆฌ์๊ฐ ์ด๋ฅผ ๋ณ๊ฒฝํ ์ ์์ด ์ปจํ ์ด๋๊ฐ ๋ ๋ง์ ๊ถํ์ผ๋ก ์คํ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ RUNP ๋ช ๋ น์ด ํฌํจ๋ dockerfiles๋ ์ด๋ฌํ ์ ์ญ ์ ํ์ด ์๋ ์์คํ ์์ "์ด Dockerfile์๋ ๋ค์ ๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค.... ๋น๋ํ๋ ค๋ฉด"๊ณผ ๊ฐ์ ๋ฉ์์ง์ ํจ๊ป ์คํ๋์ง ์์ ์ ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ๋ณด์๊ณผ ์ ์ฉ์ฑ ์ฌ์ด์ ๊ท ํ์ ํ์ฉํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด๋ถ์ ์ด๋ฆ์ด ์๋ evli ์ ์ฉ db๋ก ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๋์์๋ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
db๋ docker์์ ํ์ฉํ์ง ์๋ ๋ง๋ํ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ค๊ณ ํฉ๋๋ค.
ํ์ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ์ --privileged ๋จ๊ณ ์คํ ๋ฐ ๋ณ๋์ ์ปค๋ฐ ๋จ๊ณ๊ฐ ์๋ 2๋จ๊ณ ๋น๋์ ๋๋ค.
๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ์ฉํ๋๋ก ๋์ปค๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. db๊ฐ ์์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ๋ฌด์์ ํ๊ณ ์ถ์์ง ์์๋ด๊ธฐ๊ฐ ์กฐ๊ธ ์ด๋ ต์ต๋๋ค.
+1
์ด ๊ธฐ๋ฅ์ ์ํด.
์ญ์ฌ์ ๋ฐ ์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ ์ด ์์์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
https://github.com/docker/docker/issues/12138#issuecomment -90536998
์์์๋ฅผ ์ง์ ํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค @cpuguy83
๋๋์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋์ปค ๋น๋ ์ค์ cifs ๊ณต์ ์ ์ฐ๊ฒฐํ๋ ค๋ ์๋๋ ํน๊ถ ํ๋๊ทธ๊ฐ ์ ๊ณต๋์ง ์๋ ํ ํ์ฉ๋์ง ์์ต๋๋ค.
์ด์ ์ด๊ฒ์ ๊ตฌํํ๋ pull ์์ฒญ์ด ์์ต๋๋ค. ๊ฑฐ๊ธฐ์์ ์งํ ์ํฉ์ ํ์ธํ ์ ์์ต๋๋ค. https://github.com/docker/docker/issues/12261
์ด๋ค ๊ฒ์ด ํน๊ถ ๋ชจ๋๋ฅผ ํ์๋ก ํ๋ค๋ฉด ๊ทธ๊ฒ์ ์ด๋ค ์์ผ๋ก๋ ํธ์คํธ๋ฅผ ์์ ํ๊ณ ์์ ์ ์์ต๋๋ค. ์ฆ, ์ด๋ฌํ ์์ ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ค๋ ๋ค๋ฅธ ํธ์คํธ์์ ์คํ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง๋ฅผ ์ด์ํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
#13171์ด ๋ณํฉ๋๋ฉด ์์ ์ ๋น๋ ๋กค๋ง์ ๊ฐ๋จํ๊ฒ ๋ง๋ค๊ณ --privileged๋ฅผ ํ์ฉํ๋ฏ๋ก ์ด๊ฒ์ ๋ซ์์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด์ฅ๋ docker build
๊ฐ ์ด๊ฒ์ ํ์ฉํด์๋ ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋์ @cpuguy83 , ๋ด๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด ์ด ๋ฌธ์ ๋ฅผ ์ง์ํ๋ ๋ฐฉ๋ฒ์ docker build
๋ฅผ ์์ ํ ๋ค์ ๊ตฌํํ๋ ๊ฒ์ด์ง๋ง ์ถ๊ฐ ๋งค๊ฐ ๋ณ์๊ฐ ์์ต๋๊น?
๋ค๋ฅธ ํจ์น๊ฐ ์ ์ฉ๋๋ฉด ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ฑ์ฐ๊ธฐ ์ํด ๋ด ๊ณ ์ ๋ฒ์ ์ docker build
(์๋ง๋ docker pbuild
?)๋ฅผ ์กฐํฉํด์ผ ํฉ๋๊น?
์ด ๋ฌธ์ ์ ์ง์ ์ด ์์ต๋๊น? ์์์ ์ธ๊ธํ PR์ ํ์ธํ๋๋ฐ ๋ชจ๋ ์คํจํ์ต๋๋ค.
BUILD --privileged/--granted
์ต์
์ ๋ ์ธ๋ถํํ๊ณ ์ด๋ฏธ์ง ๋น๋/์์ ์์๊ฒ๋ง ์ ํ๋ ํธ์คํธ ๋ฆฌ์์ค์ ํน์ ๊ทธ๋ฃน์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๊น?
Dockerfile์์ RUN docker pull
๋ฅผ ์ํํ ์ ์๋ ๋ชจ๋ ์๋ฃจ์
์ ๋ํด +1์
๋๋ค.
์ฌ์ฉ ์ฌ๋ก: ์ด๋ฏธ์ง ๋ณํ ๋ฐ ๋ฌธ์ ์์ฑ์ ์ํ ์ฌ๋ฌ ๋๊ตฌ๊ฐ ํ์ํ์ง๋ง ์ถฉ๋ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ธํด ์ด๋ฌํ ๋ชจ๋ ๋๊ตฌ๋ฅผ ๋จ์ผ ์ด๋ฏธ์ง์ ์ค์นํ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋๊ตฌ ์ค ์ผ๋ถ๋ฅผ ๋ณ๋์ ์ด๋ฏธ์ง๋ก ๋ถ๋ฆฌํ๊ณ ๋ชจ๋ ๋๊ตฌ๋ฅผ ๋จ์ผ ์ด๋ฏธ์ง, ์ฆ ์ด๋ฏธ์ง์ ์ด๋ฏธ์ง๋ก ๋ฐฐํฌํ๊ณ ์ถ์ต๋๋ค. ์ด๊ฒ์ด ๋ด Dockerfile์์ RUN docker pull
๋ฅผ ์ํํ๋ ค๋ ์ด์ ์
๋๋ค.
@cpuguy83 ์ด ๋ฌธ์ ๊ฐ ๋ง์กฑ์ค๋ฝ๊ฒ ํด๊ฒฐ๋ ๊ฒ ๊ฐ์ง ์์ต๋๋ค. ๋๋ ์ ๋์ ์ผ๋ก, 100% ๋น๋ํ๋ ๋์ /proc/sys/kernel/core_pattern
์ฐ๋ ๊ฒ๊ณผ ๊ฐ์ ์ง๋ฃจํ ์ผ์ ํ ์ ์์ด์ผ ํฉ๋๋ค.
ํ์ฌ ์ธ๊ณ์์๋ run
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํตํด ์ด ๊ถํ ์๋ ์์
์ ์ํํ๊ณ ์ด์จ๋ ํด๋น ์ด๋ฏธ์ง๋ฅผ ํ๋ธ๋ก ํธ์ํ ์ ์์ต๋๋ค. ๋ํ, ๋ด๊ฐ _ever_ ์์ฐํ ์ด๋ค Dockerfile
๋ ์๊ฒฉํ๊ฒ ์ฌํํ ์ ์์ต๋๋ค. ์ง์์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ ๊ณต๊ฐ ์ ์ฅ์์์ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์
๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ชฐ๋๋ค
์ฌ๋๋ค์ ๋น๋์์ privileged
๋ฅผ ์ป๊ธฐ ์ํด ํํธ์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ _์งํ_ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์๋ ๊ณณ์ผ๋ก ์ด๋ํ์ฌ ํต์ฌ ๋น๋ ๋๊ตฌ์์ ์ด๋ฅผ ํ์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ๋ฌด์์ด ๋ฉ์์ง๋ฅผ ์ถ๊ฐํ์ญ์์ค.
cc @thaJeztah , ์ด ์ ์ฅ์ ๊ณต๊ฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค
์ด ๊ธฐ๋ฅ์ ํ์ฑํํ๊ธฐ ์ํด PR์ ๋ง๋ค์์ง๋ง ๊ฑฐ๋ถ๋์์ต๋๋ค.
์ด๋ค ํํ๋ก๋ ๊ฑด์ถ์
์์๊ฒ ์ด๋ฐ ์ผ์ด ์ผ์ด๋๋ ๊ฒ์ ๋ณด์ง ๋ชปํ์ต๋๋ค.
๋ง์ง๋ง ํตํ๋ฅผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด PR ์ค๋ ๋ ์์ฒด์์ ๋์ํ๊ฒ ์ต๋๋ค.
์ด๊ฒ์ RPM์ด --privileged์์ ์คํํ์ง ์๊ณ ์คํจํ๋ binmft_misc ๋ฑ๋ก ์๋์ด๋ฏ๋ก CentOS์์ ์ด์ JDK 1.6 ํจํค์ง๋ฅผ ์ค์นํ๋ ๋ฐ ํ์ํฉ๋๋ค.
Dockerbuild๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ๋น๋ํ๊ธฐ ์ํ ๋น ์ํ์ ๋๋ค.
๋ณต์ ํ๋ ค๋ฉด
Centos5.11์์
์คํ yum ์ค์น -y jre-1.6.0_29-fcs
์ ํ์ ํ๋๊ทธ๋ก ๋น๋์ ๊ถํ ์๋ ๋ช ๋ น ๋ถ๋ถ์ด ์์ด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ ์์ฉ ํ๋ก๊ทธ๋จ ์ค ํ๋๋ฅผ POC๋ก ๋์ปค์ ์ด์ํ๋ ค๊ณ ํ๋๋ฐ ์ ์ฉ๋์ง ์๊ณ ๋น๋๊ฐ ์คํจํ๋ IPtables ์ค์ ์ด ์๊ธฐ ๋๋ฌธ์ ๊ตฌ์ฑ ์์ ์ค ํ๋์ ๋ํด ์คํจํฉ๋๋ค. ํ์ํ ๋ณ๊ฒฝ์ ์๋์ผ๋ก ์ํํ๊ณ ์ปค๋ฐํ ์ ์์ง๋ง docker ๋น๋์ ์ฌ๋ฏธ๋ ๋ฌด์์ ๋๊น? ์ด๋ ๋น๋์ ์ผ๋ถ์ผ ๋ฟ์ด๋ฉฐ ์ด๋ฏธ ๊ธฐ๋ณธ ๋ฆด๋ฆฌ์ค์ ์ผ๋ถ์ด๋ฏ๋ก ์ฝ๊ฒ ์ด์ํ ์ ์์ต๋๋ค.
Docker๋ ๊ถํ ์๋ ์ต์ ์ด ์ค์ ๋ ์ค๊ฐ ์ปจํ ์ด๋๋ฅผ ์ฝ๊ฒ ์คํํ ์ ์์ด์ผ ํฉ๋๋ค.
@shubhamrajvanshi ์ฐ๋ฆฌ๋ ๋ฐ๋ชฌ์์ (๊ทธ๋ฆฌ๊ณ ํด๋ผ์ด์ธํธ๋ก) "๋น๋"๋ฅผ ์ฎ๊ธฐ๋ ๊ณผ์ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๋น๋ ํ๋ก์ธ์ค์ ๋ํ ๋ ๋ง์ ์ฌ์ฉ์ ์ ์๋ฅผ ์ํ ๋ฌธ์ ์ด์ด์ผ ํฉ๋๋ค(์ฌ์ฉ์ ์ ์ ๋น๋ ๊ตฌํ ๊ฐ๋ฅ ํฌํจ). "ํน๊ถ์ด ์๋" ๋น๋๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ๊ณ ๋ ค๋ ์ ์์ง๋ง ์ด๋ ๋ฆฌํฉํ ๋ง ํ์ ๋ด๋ฆด ์ ์๋ ๊ฒฐ์ ์ ๋๋ค. (https://github.com/docker/docker/blob/master/ROADMAP.md#122-builder ์ฐธ์กฐ)
@shubhamrajvanshi ์ ๋นํ ์ด์ ๋ก ๋น๋์์ iptables๋ฅผ ๋ณ๊ฒฝํ ์ ์์ผ๋ฉฐ ์ค์ ์ด ๊ณ ์ ๋์ง ์์ต๋๋ค.
๋น๋์์ ์๋ฏธ๊ฐ ์๋ --privileged๋ก ํ ์ ์๋ ์ผ์ ๊ฑฐ์ ์์ต๋๋ค.
@thaJeztah ๋์์ด ๋ ๊ฒ
@cpuguy83 ์ด๋ฏธ์ง์ iptables-persistent ํจํค์ง๋ฅผ ์ฌ์ฉํด๋
์ด๋ ๊ฒ ํ๋ฉด ๊ท์น์ด ๋์คํฌ์ ์ ์ฅ๋์ง๋ง ๋ถํํ๋ ์ฌ์ ํ ๋ค์ ๋ก๋ํด์ผ ํฉ๋๋ค.
_USER POLL_
_์ด ํ ๋ก ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋ ์๋ฆผ์ ๋ฐ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์ค๋ฅธ์ชฝ ์๋จ์ ๊ตฌ๋ ๋ฒํผ์ ํด๋ฆญํ๋ ๊ฒ์ ๋๋ค._
์๋์ ๋์ด๋ ์ฌ๋๋ค์ ๋ฌด์์ +1๋ก ๊ทํ์ ์๋ฏธ ์๋ ํ ๋ก ์ ๊ฐ์ฌํ์ต๋๋ค.
@karelstriegel
CoreOS์ Docker์ ํจ๊ป nVidia์ CUDA ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ค๋ฉด ์ด๊ฒ๋ ์ ๋ง ์ํฉ๋๋ค. ๊ทธ๋ค์ด ์ ๊ณตํ๋ ์ค์น ํ๋ก๊ทธ๋จ์ ์ปค๋ ์์ค์ ๋ํด ์ปค๋ ๋ชจ๋์ ๋น๋ํ ๋ค์ modprobe๋ฅผ ์ฌ์ฉํ์ฌ ์ค์นํฉ๋๋ค. ๋น๋ํ --privileged ์ต์ ์์ด ์๋ํ๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ์ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋น๋ ์ ํญ์ ๊ถํ ๋ชจ๋๋ฅผ ์ง์ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
+1
centos7์ฉ Dockerfile์์ mysql ๋ช
๋ น์ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
๋ฌผ๋ก entrypoint.sh๋ฅผ ์ฌ์ฉํ ์๋ ์์ง๋ง ๋น๋์ ์คํ ๋ชจ๋์ -privileged๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ฉด ๋ ์ ์ฉํฉ๋๋ค.
MySQL ๋ช ๋ น์ ์คํํ๊ธฐ ์ํด --privileged๊ฐ ํ์ํ์ง ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์ผ์ด๋์ง ์์ ๊ฒ(๋๋ ์ผ์ด๋์ผ ํ ๊ฒ)์ด ์๋ ๊ฒ ๊ฐ์ผ๋ฏ๋ก ๋ซ์์ผ ํฉ๋๋ค.
๋น๋์์ ๊ถํ์ ํ์ฉํ๋ค๋ ๊ฒ์ ๋น๋๊ฐ ํธ์คํธ์์ ํญ๋ชฉ์ ๋ณ๊ฒฝํ ์ ์๋๋ก ํ์ฉํ์ฌ ์ด๋ฏธ์ง๊ฐ ํด๋น ํธ์คํธ(๋๋ ์ ์ฌํ ์์ ์ด ์๋ ํธ์คํธ)์์๋ง ์๋ํ๋๋ก ๋ง๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๋น๋์์ ๊ถํ์ ํ์ฉํ๋ค๋ ๊ฒ์ ๋น๋๊ฐ ํธ์คํธ์์ ํญ๋ชฉ์ ๋ณ๊ฒฝํ ์ ์๋๋ก ํ์ฉํ์ฌ ์ด๋ฏธ์ง๊ฐ ํด๋น ํธ์คํธ(๋๋ ์ ์ฌํ ์์ ์ด ์๋ ํธ์คํธ)์์๋ง ์๋ํ๋๋ก ๋ง๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ด๊ฒ์ chroot ์ฌ์ฉ์ ์ฌ๋ก์ ์ ์ฉ๋ฉ๋๊น?
์ด๋ฐ ๊ฒ ์์ด dpkg-depcheck -d ./configure
ํ๋ ๋ฐฉ๋ฒ์ ์์๋ด๋ ค๊ณ ํฉ๋๋ค.
๋น๋ํ๋ ๋์(๋๋ --priviledged ์์ด ์คํ) ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ํ์ํ ๊ถํ์ ํ์ ํ๊ฑฐ๋ ํ์ฑํํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
dpkg-depcheck -d ./configure
strace: test_ptrace_setoptions_followfork: PTRACE_TRACEME doesn't work: Permission denied
strace: test_ptrace_setoptions_followfork: unexpected exit status 1
Running strace failed (command line:
strace -e trace=open,execve -f -q -o /tmp/depchJNii2o ./configure
devel<strong i="8">@98013910108c</strong>:~/src/cairo-1.14.2$
์ฝ 3๋ ๋์ 162๊ฐ์ ๋๊ธ์ด ๋ฌ๋ ธ์ผ๋ ์ถฉ๋ถํ ๊ด์ฌ์ ๊ฐ์ง๋งํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ธ์ฉ๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์ ํน๊ถ ๋ชจ๋๊ฐ ํ์ํ์ง ์๋ค๋ ์๊ฒฌ์ ์ฌ์ค์ด๋ฉฐ, ์ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ก์ปฌ, ์์, ํ์ ๋ฐ/๋๋ ํธ์ ๋น๋์ ์ ์ฉํ ์ ์๋ ๊ฒ์ ๊ธ์งํ๋ ๋ฐ ์ฌ์ฉํด์๋ ์ ๋ฉ๋๋ค. ์๋ค์ด ์กฐํ๋ฅผ ์ด๋ฃฐ ๋๊น์ง ๊ฒฝ๊ณ ๋ฅผ ๊ฒ์ํ๊ณ , ๋ช ๋ น์ค ๊ฒฝ๊ณ ๋ฅผ ์ธ์ํ๊ณ , ์ฌ์ฉ์ ์ํ๊ณ ๋น๋ํ์ง๋ง ์ฌ๋๋ค์๊ฒ ์ ์ฐ์ฑ์ ์ ๊ณตํ์ญ์์ค. ์ด์์ฑ์ด ํญ์ ๋ชจ๋ ์ฌ๋์ ์ฃผ์ ๊ด์ฌ์ฌ๋ ์๋๋๋ค.
_USER POLL_
_์ ๋ฐ์ดํธ ์๋ฆผ์ ๋ฐ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์ด ํ์ด์ง์ _๊ตฌ๋ _ ๋ฒํผ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค._
๋ฌธ์ ์ ๋ํด "+1" ๋๋ "๋๋ ์์ต๋๋ค" ๋๊ธ์ ์ฌ์ฉํ์ง ๋ง์ญ์์ค. ์ฐ๋ฆฌ๋ ์๋์ผ๋ก
์ค๋ ๋๋ฅผ ์งง๊ฒ ์ ์งํ๋ ค๋ฉด ํด๋น ์ฃผ์์ ์์งํ์ญ์์ค.
์๋ ๋์ด๋ ์ฌ๋๋ค์ด +1 ๋๊ธ์ ๋จ๊ฒจ ์ด ๋ฌธ์ ์ ์ฐฌ์ฑํ์ต๋๋ค.
@robeferre
+1
๋์ปค ์ปจํ ์ด๋ ๋ด๋ถ์ NFS ๋ณผ๋ฅจ์ ๋ง์ดํธํด์ผ ํ๋๋ฐ, ์ง๊ธ๊น์ง๋ "--privileged=true" ํ๋๊ทธ ์์ด๋ NFS ๊ณต์ ๋ฅผ ์์ฑํ ์ ์์์ต๋๋ค. ์ ์๊ฐ์ ๊ฐ์ฅ ์ข์ ๊ฒฝ์ฐ๋ ๊ถํ ์๋ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ์ด๋ป๊ฒ ๊ฐ๋ฅํ์ง?
+1
Step 19 : RUN lxc-create -t ubuntu.sf -n percise -- -r precise -a i386 -b root
---> Running in 4c51b7cf0058
lxc_container: lxccontainer.c: create_run_template: 893 error unsharing mounts
lxc_container: lxccontainer.c: create_run_template: 1084 container creation template for percise failed
lxc_container: lxc_create.c: main: 274 Error creating container percise
The command '/bin/sh -c lxc-create -t ubuntu.sf -n percise -- -r precise -a i386 -b root' returned a non-zero code: 1
๋น๋ํ๋ ๋์ docker์ gentoo ์์คํ ์ gobject-introspection์ ์ค์นํ๋ ค๊ณ ํ์ง๋ง ๋ค์ ์ค๋ฅ์ ํจ๊ป ์คํจํฉ๋๋ค.
์ปจํ ์ด๋์ ์๋์ผ๋ก ์ค์นํ๋ ค๊ณ ํด๋ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง๋ง ๊ถํ ๋ชจ๋(docker run --privileged)๋ก ์์๋ ์ปจํ ์ด๋์์ ์๋ํ๋ฉด ์ ์๋ํฉ๋๋ค.
glibc๋ฅผ ์ค์นํ๋ ค๊ณ ํ ๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ฐ๋ผ์ ๋น๋ ์ค์ ๊ถํ ์๋ ๋ช ๋ น์ ์คํํ๋ ๋ฐฉ๋ฒ๋ ํ์ํฉ๋๋ค.
๋์ปค ๋ฒ์ 1.10.1์ ์ฌ์ฉ ์ค์ด๊ณ glibc ๋ฌธ์ ๊ฐ 1.9์์ ๋ํ๋์ง ์์ต๋๋ค.
๋ฒ์ 1.10์์๋ ๋คํธ์ํน์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ 32๋นํธ ์ปจํ
์ด๋๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค.
--privileged ๋๋ --security-opt seccomp:unconfined for BUILD -๋ ์ ๋ง ํ์ํฉ๋๋ค.
๋๋ Dockerfile์ ํด๋น ์ง์๋ฌธ
๋์๊ฒ์ ํฐ +1
๋น๋ํ๋ ๋์ '๋ง์ดํธ' ๋ช
๋ น์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ด ์ ์๊ฒ๋ ์ง์ง ๋ฌธ์ ์
๋๋ค.
๋น๋ํ๋ ๋์ ํธ์คํธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ปจํ
์ด๋์ ๋ง์ดํธํ ์ ์๋ค๋ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๋ ค๊ณ ํ์ผ๋ฏ๋ก ํธ์คํธ์ NFS ์๋ฒ๋ฅผ ์ค์ ํ๊ณ NFS ๊ณต์ ๋ง์ดํธ๋ฅผ ์๋ํ์ง๋ง ๋นํน๊ถ ๋ชจ๋ ๋๋ฌธ์ ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์์๋์ต๋๋ค.
๋ด ์ฌ์ฉ ์ฌ๋ก์์๋ ๋น๋ ์ปจํ ์คํธ์ ๋ณต์ฌํ์ง ์๊ณ ์ด๋ฏธ์ง์ ๋ช ๊ฐ์ง ํญ๋ชฉ์ ์ค์นํ๊ณ ์ค์นํ๊ธฐ ์ ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
์ ํ์ ์ฌ์ง๊ฐ ์๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋๋ค.
thaJeztah๋ 3์ 10์ผ์ ์ด ๋ฌธ์ ๋ฅผ ์ธ๊ธํ์ต๋๋ค.
1.10.2๋ก ์ ๊ทธ๋ ์ด๋ํ ํ LTTng ๋์์ ํ๊ท #20818 ์ข ๋ฃ๋จ
์๋์ค, ๋ซํ์ง ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ 1.11.0-0~wily๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ 32๋นํธ ์ปจํ
์ด๋์์๋ 1.10.0 ์ดํ๋ก ์ ์์
์ด ์๋ํ์ง ์์ง๋ง 1.9.x๋ ์ ์๋ํ์ต๋๋ค.
-privileged๋ง ์ปจํ
์ด๋๋ฅผ ์์ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์๋ก์ด ๊ฒ์ ๋ง๋ค ์ ์์ต๋๋ค
๋๋ ์ฌ๋๋ค์ด ์ด ์ค๋ ๋์์๋ง 2.5๋ ๋์ ๊ตฌ๊ฑธํ๊ณ ์ฌ๋๋ค์ด ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด PR์ ์ ์ถํ์์ ๊ฐ์ํ ๋ ๋ง์ ์ฌ๋๋ค์ด ๋ถ๋ช ํ ํ์๋ก ํ๋ ๊ฒ์ด ๊ตฌํ๋์ง ์์๋ค๋ ์ฌ์ค์ ๋๋์ต๋๋ค.
@ctindel ์ ๋์ rkt๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ์ด์ ์ค ํ๋์ ๋๋ค.
@ctindel ์ฐ๋ฆฌ๊ฐ ๊ตฌํํ๊ฑฐ๋ ์ง์ํ ์ค๋น๊ฐ ๋์ง ์์ ๊ฒ์ ๋๋ค. ๊ตฌํ ์์ฒด๋ ๋ค์ ๊ฐ๋จํฉ๋๋ค(์ฌ์ง์ด ๋ ผ์ํ ์ ์๋๋ก ์ง์ ๊ตฌํํ์ต๋๋ค). ๊ทธ๊ฑด ๋ฌธ์ ๊ฐ ์๋๋๋ค.
--privileged
๋ ํฑํฌ์ด๋ฉฐ ๋น๋ ์ ํ์ฉํ๋ ๊ฒ์ ์ํํ๋ฉฐ ์ด๋ฏธ์ง ์ด์์ฑ์ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๋ธ๋ผ์ด์ธ,
ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ์ ์๊ฒ๋ ๊ณต์ ํด ์ฃผ์ญ์์ค. ๋๋ ๊ฒ
์ ๊ฐ์ฌํ๋ค.
๊ฐ์ฌ ํด์
์๋ฐค ๋ผ์ฆ๋ฐ์
669-300-8346
2016๋ 5์ 2์ผ ์์์ผ ์คํ 2์ 30๋ถ์ Brian Goff [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@ctindel https://github.com/ctindel ์์ง ์ค๋น๊ฐ ์ ๋ ๋ถ๋ถ์ ๋๋ค.
๊ตฌํํ๊ฑฐ๋ ์ง์ํฉ๋๋ค. ๊ตฌํ ์์ฒด๋ ๋ค์ ๊ฐ๋จํฉ๋๋ค(๋๋ ์ฌ์ง์ด
์ฐ๋ฆฌ๊ฐ ๋ ผ์ํ ์ ์๋๋ก ์ง์ ๊ตฌํํ์ต๋๋ค), ๊ทธ๊ฒ์ ๋ฌธ์ ๊ฐ ์๋๋๋ค.--privileged๋ ํฑํฌ์ด๋ฉฐ ๋น๋ ์ ์ด๋ฅผ ํ์ฉํ๋ ๊ฒ์ ์ํํฉ๋๋ค.
์ด๋ฏธ์ง ์ด์์ฑ์ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/docker/docker/issues/1916#issuecomment -216369957
ํด๋์ฑ์ ๋ฏธ์น๋ ์ํฅ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค. ๋น๋ ์ ๊ถํ ์๋ ์์ ์ด ์ด์์ฑ์ ์ด๋ค ์ํฅ์ ์ค๋๊น? ์ ๋ง์, ๊ถํ์ด ์๋ ์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ํด๋์ฉ์ด ์๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ด๋ ต์ง๋ ์์ง๋ง ๊ถํ์ด ์๋ ์์ ์ผ๋ก ๋น๋๋ ์ด๋ฏธ์ง๊ฐ ๋ฐ๋์ ์ด์์ด ๋ถ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ด ์๋ค๋ ๊ฒ์ ๋๋ค.
๋๋ ๋ชจ๋ ์ปจํ ์ด๋๊ฐ ํด๋์ฉ์ด์ด์ผ ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ผ๋ถ ์ปจํ ์ด๋๋ ์ปค๋ฎค๋ํฐ์ ๊ณต์ ํ๊ธฐ ์ํด ์์ฑ๋๊ณ ์ผ๋ถ๋ ๋ด๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ๋ฅผ ์ํด ์์ฑ๋ ์ ์์ต๋๋ค.
ํน๊ถ ๋ชจ๋์์ ์คํํด์ผ ํ๋ ์ฑ์ ์ด์์ฑ ๋ฌธ์ ๋ ์ฑ ์์ฒด์ ์์ต๋๋ค.
๊ถํ ๋ชจ๋๋ ์ฝ๋ ๋ณ๊ฒฝ ์์ด ์ฑ์ด ์๋ํ๋๋ก ํ๋ ์ตํ์ ์๋จ์ ๋๋ค.
ํน๊ถ ๋ชจ๋ ๊ตฌ์ถ์ด ํ์ํ ์ด๋ฏธ์ง ๋น๋๋ ๊ทธ๋ฌํ ์ปจํ ์ด๋๊ฐ ํน๊ถ ๋ชจ๋์์ ์คํํด์ผ ํ ์๋ ์๋ค๋ ๊ฒ์ ์ดํดํ๊ณ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค.
ํน๊ถ ๋ชจ๋๋ก ๋น๋ํ๋ ๊ฒ์ ์ด์์ฑ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ผ๋ฏ๋ก ๊ถ์ฅํ์ง ์๋๋ค๋ ์ ์ ๋ถ๋ช ํ ๋ฌธ์ํํด์ผ ํฉ๋๋ค.
Outlook Mo ๋ด์ฆ ์์
2016๋ 5์ 2์ผ ์์์ผ ์คํ 2:53 -0700์ "Trevor Blackwell" < [email protected] [email protected] >์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
ํด๋์ฑ์ ๋ฏธ์น๋ ์ํฅ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค. ๋น๋ ์ ๊ถํ ์๋ ์์ ์ด ์ด์์ฑ์ ์ด๋ค ์ํฅ์ ์ค๋๊น? ์ ๋ง์, ๊ถํ์ด ์๋ ์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ํด๋์ฉ์ด ์๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ด๋ ต์ง๋ ์์ง๋ง ๊ถํ์ด ์๋ ์์ ์ผ๋ก ๋น๋๋ ์ด๋ฏธ์ง๊ฐ ๋ฐ๋์ ์ด์์ด ๋ถ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ด ์๋ค๋ ๊ฒ์ ๋๋ค.
์ด ์ค๋ ๋์ ๊ฐ์
ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฉ์์ง๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/docker/docker/issues/1916#issuecomment -216375159์์ ํ์ธํ์ธ์.
@tlbtlbtlb ํน๊ถ ๋ชจ๋๋ ํธ์คํธ์ ๋ํ ์ ์ฒด ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์๋ง๋ shmmax ๋๋ ํจ์ฌ ๋ ๋์ ๊ฒ๊ณผ ๊ฐ์ ๋จ์ํ ๊ฒ์ ์ค์ ํ์ ๊ฒ์
๋๋ค.
๋๋ ์ด๊ฒ์ด ์ฌ์ฉ ๊ฐ๋ฅํ๋ค๋ 1์ผ์ฐจ์ ์ด๋ฌํ ์ผ์ด ์ผ์ด๋ ๊ฒ์์ ๋ณด์ฅํฉ๋๋ค.
@davidl-zend "ํด๋์ฉ"์ ์ปค๋ฎค๋ํฐ์ ๊ณต์ ํ๋ ๊ฒ์ ์๋ฏธํ์ง ์์ต๋๋ค. ํ ๊ธฐ๊ณ์์ ๋ค๋ฅธ ๊ธฐ๊ณ๋ก ์ด๋ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
@cpuguy83 ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ง์ ํ๋ฏ์ด ์ด๋ฏธ์ง ์ด์์ฑ์ ๊นจ๋ ๋ค๋ฅธ ๋ง์ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๊ถํ ์๋ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ์ง ์์์ผ๋ก์จ ์ํํ๋ ๋ชจ๋ ์์ ์ Dockerfile์์ ๋ถ๋ถ์ ์ผ๋ก ๋น๋ํ ๋ค์ ์๋์ผ๋ก ์ปจํ ์ด๋๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ปค๋ฐ์ ์ํํ๊ฑฐ๋ Dockerfile์์ ๋ถ๋ถ์ ์ผ๋ก ๋น๋ํ๊ณ ์๋ฃํ๋ ๋ ๋จ๊ณ ํ๋ก์ธ์ค๋ฅผ ๊ฐ๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ปจํ ์ด๋๊ฐ ์ฒ์ ์คํ๋ ๋ ๊ถํ์ด ๋ถ์ฌ๋ ์ค์น๋ ์ง์ฆ๋๋ ์ผ์ ๋๋ค. ์ฆ, ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๋ ์์ ์ ์ํํ๋ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ๋ถํ ์ด ์๋ํ๋ ๋ฐ ๋ช ๋ถ์ด ๊ฑธ๋ฆด ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ค์ํ ํฌ๋ผ์์ ๋ณธ ์๊ฒฌ์ ๊ฐ์ํ ๋ ๋ง์ ์ฌ๋๋ค์ด ์ค๋๋ ์กด์ฌํ๋ ๋์ปค ์ ํ ์ฌํญ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ฏธ ์ ํํ ์ด ์์ ์ ์ํํ๊ณ ์๋ค๊ณ ํ์ ํฉ๋๋ค.
์ด๋ฏธ์ง ์ด์์ฑ์ด ์์ญ ๊ฐ์ง ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์์๋ ์ํคํ ์ฒ๊ฐ ์์ผ๋ฉด ์ด ํน์ ํ์ฐจ์ ๋ํด ๊ธฐ์ธ์ด์ง๋ ๊ฒ์ด ๋ฌด์จ ์๋ฏธ๊ฐ ์์ต๋๊น?
๋ถ๋ช ํ ๋ ์ด์ ๋์ปค ํ๋ธ๋ travis-ci๊ฐ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋๋ก ํ ์ ์์ง๋ง ๊ถํ ๋ชจ๋๋ก ๋น๋ํด์ผ ํ๋ ์ฌ๋๋ค์ ์ด์จ๋ ์ดํดํ ๊ฒ์ ๋๋ค.
@ctindel ์ด๋ฏธ์ง ์ด์์ฑ์ด ๊นจ์ง๋ ๋ช ๊ฐ์ง ์๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค.
์ปจํ
์ด๋๋ฅผ ์ฒ์ ์์ํ ๋ ์ด๋ฐ ์ข
๋ฅ์ ์ผ์ ํ๋ ๊ฒ์ด _์ ํํ_ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์
๋๋ค.
์ด๋ฏธ์ง์ ์์ด์๋ ์ ๋๋ ๋ฐํ์ ๊ตฌ์ฑ์
๋๋ค.
@cpuguy83 ๋๊ตฐ๊ฐ๊ฐ Dockerfile์์ ๋ถ๋ถ ๋น๋๋ฅผ ์ํํ๊ณ , ๊ถํ ๋ชจ๋์์ ์ปจํ ์ด๋๋ฅผ ํ์ ํ๊ณ , ๋ ๋ง์ ๋ณ๊ฒฝ์ ์ํํ ๋ค์, ๋์ปค ์ปค๋ฐ์ ์ํํ ์ ์๋ค๋ ์ฌ์ค์ ๋ํด ๋ ผ์ํ๊ณ ์์ต๋๊น? ํน๊ถ ๋ชจ๋์์ ๋น๋ํ๋ ๊ฒ๊ณผ ์ด๋ป๊ฒ ๋ค๋ฆ ๋๊น? ๊ทธ๊ฒ์ด ์ค๋๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ํ๊ณ ์๋ ์ผ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋๋ ๋ป๋ป์ค๋ฝ๊ฒ ๋งํ๋ ค๋ ๊ฒ์ด ์๋๋ผ ์ฌ๋๋ค์ด ์ด์ํ ๋ฐฉ์์ผ๋ก ์ผํ๊ณ ์๋ ํ๋ซํผ์ ์ฌ๊ฐํ ํ๊ณ๋ผ๊ณ ๋งํ๋ ๊ฒ๋ฟ์ ๋๋ค.
์๋ฅผ ๋ค์ด, ์์คํ ์ ํน์ ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์นํ ์ ์๋ ํ์ฌ ๋ฐ๋น์ ํจํค์ง(๋ฐ ์๋ง๋ RPM)๊ฐ ์์ต๋๋ค. ๋ฐ๋น์ ํจํค์ง๋ฅผ ์ค์นํ๋ ๊ฒ์ "๋ฐํ์ ์ค์ "์ด ์๋๋ผ ์ค์น ๊ณผ์ ์ ์ด์ํ ๋ถ๋ถ์ ๋๋ค.
@ctindel ๋๋ ์ด๊ฒ์ ๋ํด ์ ํ ํ ๋ก ํ์ง ์์ต๋๋ค. ์ฐจ์ด์ ์ ํ๋์ ์ง์ํ๋ ๊ฒ์ ๋๋ค. ์ฐจ์ด๊ฐ ์์๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ด ํ ๋ก ์ ํ์ง ์์์ ๊ฒ์ ๋๋ค.
์ ์๊ฒ ์ ๋ ๋์ํ๋ ์ฑ์ธ์ด๊ณ ์ฌ๋ฌ ๋ ธ๋์ ๊ฑธ์ณ packstack ์ด๋ฏธ์ง๋ฅผ ๋กค๋งํ ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค. ํ์ฌ Dockerfile ํญํ์ผ๋ก ๋น๋ํ๊ณ ์์ผ๋ฏ๋ก ๋์ปค ์ ํ์ ํผํ๊ธฐ ์ํด ์์์๋ฅผ ์จ์ผ ํฉ๋๋ค.
@ cpuguy83 ์ฌ๋๋ค์ด ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์์ ํ๊ณ ์๋ ์ด ์ต์ ์ ์ ๊ณตํ์ง ์์์ผ๋ก์จ ์ ํํ ๋ฌด์์ ์ป์ ์ ์๋์ง (์ด ์ค๋ ๋์ ๋ค๋ฅธ ์ฌ๋๋ค๋ ์๊ฐํฉ๋๋ค) ์ฌ์ ํ ๋ช ํํ์ง ์์ต๋๋ค. ์ด์จ๋ ์ปค๋ฐ ์ต์ ์ด ์ถ๊ฐ๋๋ ์๊ฐ ๋น์ ์ด ๋ ผ์ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ์ผ์ข ์ ์ํคํ ์ฒ ์์์ฑ(๋๋ ๊ทธ๊ฒ์ ๋ํด ๋ ๋์ ๋จ์ด๊ฐ ์์ต๋๋ค)์ด ์ฌ๋ผ์ก์ต๋๋ค. ๊ทธ๋์ ๊ทธ๊ฒ์ด ๊ถํ ์๋ ๋น๋ ๋๋ ๊ถํ ์๋ ์ปจํ ์ด๋์ ๋์ปค ์ปค๋ฐ์ ํตํ Dockerfile.
ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ๋๋ค์ ์ํ ๋์ฐํ PITA์ด๊ณ Dockerfile์ ์ฌ์ฉํ์ฌ ๋น๋ํ๋ ํ์ฌ ๋ฉ์ปค๋์ฆ์ ๋ํ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋งค์ฐ ํ๋ฅญํฉ๋๋ค.
๋ํ, ๋น์ ์ ๋ด ์ง๋ฌธ์ ๋๋ตํ์ง ์์์ต๋๋ค. ํ์ฌ ๋ฐ๋น์ ํจํค์ง(๋๋ packstack)์ ๊ฐ๋จํ ์ค์น๋ฅผ "๋ฐํ์ ๊ตฌ์ฑ"์ผ๋ก ๊ฐ์ฃผํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
@ctindel ์ด์์ฑ. ์ด๋ค ์ผ์ ํ ์ ์๋ค๊ณ ํด์ ์ง์๋๋ ๊ฒ์ ์๋๋ฉฐ build
์ ํฌํจํ์ฌ ๋๊ตฌ๋ ์ฝ๊ฒ ํ ์ ์๋ค๋ ๊ฒ์ ์ง์๋๋ค๋ ์๋ฏธ์
๋๋ค.
์ฐ๋ฆฌ๋ ํธ์คํธ ๊ฐ์ ์๋ํ์ง ์๋ ์ด๋ฏธ์ง ๋ฌธ์ ๋ก ๊ฐ๋ ์ฐจ _ํ _ ๊ฒ์
๋๋ค... ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก Docker์ ๋ชจ๋ ์ด์ ๋ฅผ ๋ฌดํจํํฉ๋๋ค.
ํจํค์ง๋ฅผ ์ค์นํ๊ธฐ ์ํด --privileged
๊ฐ ํ์ํ ๊ฒฝ์ฐ ํจํค์ง๋ก ํด๊ฒฐํด์ผ ํฉ๋๋ค. ์ค์น์๋ --privileged
๊ฐ ํ์ํ์ง ์์ต๋๋ค ... ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ํ์ํ ๊ฒฝ์ฐ ์ค์น ์์ฒด๊ฐ ์ด์ ๊ฐ๋ฅํ์ง ์๋ค๋ ํ์์
๋๋ค(ํธ์คํธ์์ ๋ณ๊ฒฝํด์ผ ํจ)... --privileged
์์ด ์ปจํ
์ด๋์์ docker๋ฅผ ์คํํ ์ ์์์ ์ฐธ์กฐํ์ญ์์ค(์คํ ๊ฐ๋ฅํ๋ฉฐ --privileged ์์ด ๋ฌธ์ ์์ด ์ํ๋ ๋ชจ๋ ๊ฒ์ ์ค์นํ ์ ์์).
๊ทธ๋ฌ๋ ๋์ปค ์ปค๋ฐ์ ํตํด ์ํํ ์ ์๋ค๋ ๊ฒ์ ์ง์๋๋ค๋ ์๋ฏธ์ ๋๋ค!
์ดํด๊ฐ ๋์ง ์์ต๋๋ค. ์ง์๋์ง ์๋ ์ด๋ฏธ์ง์ ๋ํด ๋๊ตฐ๊ฐ๊ฐ ๊ฐ์ธ์ ์ผ๋ก ๋ถ๋ง์ ์ ๊ธฐํ ๊น๋ด ๊ฑฑ์ ํด์ ์ด ์ ํ์ ํ๊ณ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์๋ง์ ์ฌ๋๋ค์ ๋ง๋ค๊ณ ์์ต๋๊น?
ํจํค์ง๋ฅผ ์ค์นํ๋ ์์ (์ฌ๊ธฐ์ ๊ตฌ์ฑ์ ๋ํด ์ด์ผ๊ธฐํ์ง๋ ์์)์ด "๋ฐํ์ ๊ตฌ์ฑ" ์์ ์ธ ์ด์ ์ ๋ํ ๋ด ์ง๋ฌธ์ ์ฌ์ ํ ๋๋ตํ์ง ์์์ต๋๋ค. "ํด๋์ฑ"์ด๋ผ๋ ๋ง์ ์๋ฌด ์๋ฏธ๊ฐ ์์ต๋๋ค.
๋์ปค์ ๋ํด x86_64์ ํน์ ํ ๊ฒ์ด ์์ต๋๊น? ํน์ CPU ์ํคํ ์ฒ์ฉ์ผ๋ก ๋น๋๋ ๋์ปค ์ด๋ฏธ์ง๊ฐ ๊ฒฐ๊ตญ์๋ ์์๊น์? ๋ํ ํด๋๊ฐ ๋ถ๊ฐ๋ฅํ์ง ์์ต๋๊น? ๋ด ๋ง์ ์ด๋ป๊ฒ ๋ ํญ์ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ ์์ ๋ค๋ฅธ ์๋ง์ ๋ณ์์ ๊ด๊ณ์์ด ์ ์ธ๊ณ์ ๋ชจ๋ ๋์ปค ํธ์คํธ์์ ์คํํ ์ ์๋ค๋์ด ์ ์ฒด ์์ด๋์ด๋ ์ด์จ๋ ๋ถ๊ฐ๋ฅํ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฏ๋ก ํธ์ํด์ผ ํ ํ์์ฑ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค. ์ฌ๋๋ค์ด ์๊ตฌํ๋ ์ด ํน์ ๊ธฐ๋ฅ์ผ๋ก ๋์๊ฐ๋๋ค.
BTW, ์ฌ๊ธฐ์์ ๊ทํ์ ๋ต๋ณ๊ณผ ์ง์์ ์ธ ์ฐธ์ฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด์ ์ค๋ ๋๊ฐ ๋ฌด์๋๋ ๋ค๋ฅธ ๋ง์ github ํ๋ก์ ํธ!
docker run --privileged
with docker commit
๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฌ๋๋ค์ ๋ํ ์์ ์ ๋์ํฉ๋๋ค. ์ง๊ธ๊น์ง ๋ ํ์ฌ์ ๋ํด ๊ทธ๋ฐ ์๋ฃจ์
์ ๋ง๋ค์์ต๋๋ค. ์ฌ๋๋ค์ ๊ทธ๋ฐ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ๊ฒ์ด๊ณ ๊ทธ๊ฒ์ ํ๋ ๊ฒ์ด ๋์ฐํ๊ณ ๋์ฐํ ์ผ์ธ ๊ฒ์ฒ๋ผ ํ๋ํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
์ง์ฅ, --privileged
๋ก ๋น๋๋ ์ปจํ
์ด๋๋ฅผ ์ง์ํ๋ ๊ฒ์ด ๋๋ฌด ๋๋ ค์ฐ๋ฉด ๋ฌธ์์ ๋ช
ํํ๊ฒ ๋ช
์ํ์ฌ ์ฌ๋๋ค์ด ์์ ์ ์ํ์ ๊ฐ์ํ๊ณ ์ํํ๊ณ ์์์ ์๋ฒฝํ๊ฒ ์ธ์ํ๋๋ก ํ์ญ์์ค. ๋๋ ์ง๊ธ๊น์ง ์ด๋ค ๋ถ์ ์ ์ธ ์ํฅ๋ ๋ณด์ง ๋ชปํ์ง๋ง. ๊ทธ๋ฌ๋ ๋ค์ ์ฐ๋ฆฌ๋ ๋ค๋ฅธ ๋ฐฐํฌํ์์ ์ปจํ
์ด๋๋ฅผ ์คํํ๋ ค๊ณ ์๋ํ์ง ์์์ต๋๋ค.
@PerilousApricot ์ค์ ๋ก packstack์ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ์์ธ์ ๋ฌด์์
๋๊น? ํน์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ฑฐ๋ ์
์คํธ๋ฆผ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ํ์ง๋ง ํธ์คํธ ์๋ฒ์ ๋ํ ์์ ํ ๋ฌด์ ํ ๋ฃจํธ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ --privileged
๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ ์์ต๋๋ค. ์ฌ๋๋ค์ด ํน์ ๋น๋ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ ๋ชจ๋ ๊ฒฝ์ฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์์ ํ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ค์ ๋ก ๋น๋๋ฅผ ์ํํ๊ธฐ ์ํด ํธ์คํธ ์์คํ
์ ๋ํ ๋ฃจํธ ์ก์ธ์ค๊ฐ ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.
@justincormack init ์คํฌ๋ฆฝํธ๊ฐ tmpfs ํ์ผ ์์คํ ์ ๋ง์ดํธํด์ผ ํ๋ ์์ฒด ์๋น์ค๋ฅผ ์์ํ๋ ํ์ฌ ํจํค์ง(์ฆ, ๋ณ๊ฒฝํ ์ ์์)์ ๋ํ ์๋ฃจ์ ์ ๋ฌด์์ ๋๊น? ๋ด ๋ง์ --privileged๋ฅผ ๋ฌด์ํ๋๋ผ๋ ๋น๋ํ๋ ๋์ --cap-add ๋๋ --security-opt apparmor:unconfined๋ฅผ ์ํํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
@ctindel ์ค์น ์ tmpfs๋ฅผ ๋ง์ดํธํ์ง ์์์ผ ํฉ๋๋ค. ๋ฐํ์ ์ tmpfs๊ฐ ํ์ํ ๊ฒฝ์ฐ ํ๋ฅญํ์ง๋ง ์ค์น ์์๋ ์ ํํ์ง ์์ต๋๋ค.
@cpuguy83 ์์ ์ ์ธ ์ 3์๋ก๋ถํฐ ์จ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
์ด๊ฒ์ด ์ด ์ ์ฒด ํ ๋ก ์ ์์ ์ ๋๋ค. "์๋ชปํ๋" ์ฌ๋๋ค์ ์ง์ ์์ฒญ์ ๋ํ ์ฒ ํ์ ์ฐ๋ ค ๋๋ฌธ์ ๋์ปค ์ฌ์ฉ์ ํจ์ฌ ๋ ์ด๋ ต๊ฒ ๋ง๋๋ ์์์ ์ ํ์ ๋ถ๊ณผํ๊ณ ์์ต๋๋ค.
์ด๋ ์ด์ ์ฒด์ ๊ฐ ์ฌ๋๋ค์ด ํ๋ก์ธ์ค ์ค์ผ์ค๋ง ํด๋์ค๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ํ์ฉํด์๋ ์ ๋๋ค๊ณ ๋งํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์๋ชปํ๋ฉด ์ฐ์ ์์๊ฐ ์ญ์ ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋๋ ์๋ชป ์ฌ์ฉํ๋ฉด ์์ง์๊ฐ๋ฝ์ ์น ์ ์๊ธฐ ๋๋ฌธ์ ์๋ฌด๋ ๋ง์น๋ฅผ ๋ง๋ค์ด์๋ ์ ๋ฉ๋๋ค.
์ฌ๋ฌ ๋ฒ ๋งํ๋ฏ์ด docker๋ ์ด๋ฏธ commit ๋ช ๋ น์ ํตํด ์ด๋ฅผ ์ง์ํ๋ฏ๋ก ์ฌ์ฉ์์๊ฒ ๋ ๊ณ ํต์ค๋ฌ์ธ ๋ฟ์ ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ํ์ง ์๋ ์ฌ๋์ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด๊ณ , ๋์ํ ์ฑ์ธ์ ์ ํ ์ฌํญ์ ์ดํดํ๊ณ ์ฌ์ฉํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ ๋์ ํฌ๊ฒ ๋จ๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค.
@ctindel ๋๊ตฐ๋ค๋ 50km ๋ฐ๊ฒฝ์ ์๋ ๋ชจ๋ ์ฌ๋์ ์ฃฝ์ผ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ํตํญํ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์ค์นํ๋ ๋์ tmpfs๋ฅผ ๋ก๋ํด์ผ ํ๋ ์ด ํจํค์ง์ ํน์ง์ ๋ฌด์์ ๋๊น? ์ค์น๋ ๋ง ๊ทธ๋๋ก ์ผ๋ถ ์์นด์ด๋ธ ํ์์์ rootfs๋ก ํ์ผ์ ์ถ์ถํ๋ ๊ฒ์ ๋๋ค.
๋ฌด์์ด๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋น๋ ์ ๊ถํ ์๋ ๊ถํ์ ํ์ฑํํ๋ ๊ฒ๋ณด๋ค ์ค์น ์ tmpfs๋ฅผ ๋ง์ดํธํ์ง ์๋๋ก ์
์คํธ๋ฆผ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ด ํจ์ฌ ๊ฐ๋จํ๊ณ ์์ ํ ๋ณ๊ฒฝ ์ฌํญ์
๋๋ค.
Docker๋ ์ํฌ๋ก๋ ์ด์์ฑ์ ๊ดํ ๊ฒ์ ๋๋ค. ๋น๋์ ๋ํ ํน๊ถ(๋๋ ์ถ๊ฐ ๊ถํ, ๋ณด์ ํ๋กํ ์กฐ์ ๋ฑ)์ ํ์ฑํํ๋ฉด ์ด ๋ฌธ์ ๊ฐ ๊ทผ๋ณธ์ ์ผ๋ก ์ค๋จ๋๋ฉฐ ์ค๋๋ ์ฐ๋ฆฌ๊ฐ ๋ฐ์๋ค์ผ ์ ์๋ ์ฌํญ์ด ์๋๋๋ค.
commit
๋ฐ build
๋ ๋งค์ฐ ๋ค๋ฅธ ๋ ๊ฐ์ง์ด๋ฉฐ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ํํ ์ ์๋ค๊ณ ํด์ ๋ค๋ฅธ ๋ชจ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ํํ ์ ์์ด์ผ ํ๋ค๋ ์๋ฏธ๋ ์๋๋๋ค.
FROM python
ENV PACKSTACK_VERSION 7.0.1
RUN cd /opt && git clone https://github.com/openstack/packstack.git \
&& cd packstack \
&& git checkout $PACKSTACK_VERSION \
&& rm -rf .git \
&& python setup.py install
๊ถํ์ด ํ์ํ์ง ์์ต๋๋ค.
๋ฒ์์ ๊ตํ.
์ธ์ ๊ฐ๋ "๊ฐ์ " ์ด์์ฑ์ด ์ด ํ๋ก์ ํธ๋ฅผ ์ฃฝ์ผ ๊ฒ์
๋๋ค. ์ด๋ฏธ ์คํ ์ค์
๋๋ค.
๋๋ฌด ๋ง์ ๊ธฐ๋ฅ์ด ์ ๋งคํ ์ด์์ฑ ๋๋ฌธ์ ๊ฑฐ๋ถ๋๊ณ ์๊ณ , ๊ทธ๊ฒ ๋๋ฌธ์ ๋ง์ ์ง์ ์ด ์ด๋ฃจ์ด์ง์ง ์๊ณ ์์ต๋๋ค .....
์ธ์ ๊ฐ ๋๊ตฐ๊ฐ๊ฐ ํ๋ก์ ํธ๋ฅผ ํฌํฌํ๊ณ ์ด์์ฑ์ ์ ํ ์ฌํญ์ผ๋ก ๋ง๋ค ๊ฒ์
๋๋ค. ๊ฟ ... ๊ฟ .... ์๋ฉ.
๋ ๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋๋๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด ๊ฒฝ์ฐ Docker๊ฐ ์ ๋๋ก ์๋ํ์ง ์๋ ์ค์น ํ๋ก๊ทธ๋จ์ ํธ์๋ฐฑํ๋ ๊ฒ์ด ์ ํจํ ์ฒ ํ์ ๋๋ค. ๋๋ถ๋ถ์ ์ค์น ํ๋ก๊ทธ๋จ์๋ Dockerfile์ ์กฐ๊ธ ๋ ๊ธธ๊ฒ ๋ง๋๋ ์ผ์ข ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ Docker ํ๊ฒฝ์ด ์์๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด Mac์์๋ docker-machine์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํธํ๋๋ ๋์ ํธ์คํธ ์ปดํจํฐ์์๋ง ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค. ๋ด ์ฌ์ฉ ์ฌ๋ก๋ ํธ์คํธ OS(CoreOS)์ nVidia GPU ๋๋ผ์ด๋ฒ๋ฅผ ์ค์นํ๋ ๊ฒ์ด์ด์ ํธ์คํธ OS์ ์ง์ ์ค์นํ๋ ๊ฒ์ ๊ถ์ฅํ์ง ์์์ต๋๋ค.
๊ทธ๋์ ์ด๋ ์ชฝ์ด๋ ์ง์ํ์ง ์๋ ๊ฒ์ ๋ฏธ๋์ ์์๋ณด๊ธฐ ์ํด ์ฐพ์์จ ๊ฒ ๊ฐ์ต๋๋ค. ๋ด ์๊ฐ์ ๋ฐ๊พธ๊ฒ ๋ง๋ ๊ฒ์ ๋จผ์ ๋ด ์ฝ๋๋ฅผ Ubuntu ์์์ ๋ฐ์ด ๋ฃ๊ณ ๊ฑฐ๊ธฐ์์ ๋น๋ํ๋ ๊ฒ๋ณด๋ค docker-machine์ ์ฌ์ฉํ์ฌ ๋ฉํฑ์์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ํธ๋ฆฌํจ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@tlbtlbtlb ๋ฌด์จ "๋"์ ๋ง์ํ์๋์ง ์ดํด๊ฐ ๋์ง ์์ต๋๋ค. ๊ฒฝ๋ฐํ์ง๋ ์์ง๋ง ํ ํ๊ฒฝ์์๋ ์คํ๋์ง๋ง ๋ค๋ฅธ ํ๊ฒฝ์์๋ ์คํ๋์ง ์๋ ์๋ง์ ๋์ปค ์ด๋ฏธ์ง๊ฐ ์๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค. ์๋ฅผ ๋ค์ด, linux->linux์์ mongodb ์ปจํ ์ด๋๋ก ํธ์คํธ ๋ณผ๋ฅจ์ ๋ง์ดํธํ ์ ์์ต๋๋ค. mmapv1 ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๊ฐ ์ ๋๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๊ฒฝ์ฐ mmap ํญ๋ชฉ์ด ์ ๋๋ก ์๋ํ์ง ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ๊ฑด๋ฌผ๊ณผ ๊ด๋ จํ์ฌ ๋ฌธ์ ๊ฐ ์๋๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ๋์ปค ์ด๋ฏธ์ง๊ฐ "์ด์ ๊ฐ๋ฅ"ํ๊ณ "์ด๋์๋ ์คํํ ์ ์๋ค"๋ ์๊ฐ์ ์ด ์์ ์์ ์์ ํ ๋์ผ์ค์ ๋๋ค. ์๋ฌด๋ฐ๋ ๋ฌ๋ฆด ์ ์๋ ์ํฉ์ด๋ผ๋ฉด "์ด๋์๋ ์ง์ ์ ์์ด์ผ ํ๋ค"๋ ๋ง์ด ๋ฌด์จ ๋ฏธ๋์ด๊ฒ ์ต๋๊น?
์์ ์ mongodb ์ด๋ฏธ์ง๊ฐ ๋ชจ๋ ๊ณณ์์ ์๋ํ๋ค๋ ๊ฒ์ ๋๋ค. ์๋ชป๋ ๋ฐํ์ ๊ตฌ์ฑ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ค๋ฅธ ๋ฌธ์ ์ ๋๋ค.
Docker์๋ ์ด์ ๊ฐ๋ฅํ ๊ตฌ์ฑ๊ณผ ์ด์ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฑ์ด ๋งค์ฐ ๊ตฌ์ฒด์ ์ด๊ณ ์ฅ์์ ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค.
์ด๊ฒ์ ์ด๋ค๊ฐ์ ?
๋ด nginx ๊ตฌ์ฑ ํ์ธ ํจ์ค์ ์ปจํ
์ด๋ ๋ด๋ถ์ ๋ด ์ค์ IP๊ฐ ์์ด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ๋ด Dockerfile์ ๋๋ค.
FROM ubuntu:14.04.4
RUN apt-get update
RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:nginx/stable
RUN apt-get update
RUN apt-get install -y nginx-full vim
RUN ifconfig lo:0 192.168.168.70 netmask 255.255.255.0 up
RUN ifconfig lo:1 192.168.168.57 netmask 255.255.255.0 up
RUN ifconfig lo:2 192.168.168.58 netmask 255.255.255.0 up
ADD . /etc/nginx
โ nginx git:(ha-node-01) โ docker build -t nginx4test .
Sending build context to Docker daemon 976.4 kB
Step 1 : FROM ubuntu:14.04.4
---> 90d5884b1ee0
Step 2 : RUN apt-get update
---> Using cache
---> eea42cb6135d
Step 3 : RUN apt-get install -y software-properties-common
---> Using cache
---> 9db86ab17850
Step 4 : RUN add-apt-repository ppa:nginx/stable
---> Using cache
---> 5ed2266a93a9
Step 5 : RUN apt-get update
---> Using cache
---> 09fcfdc1fed3
Step 6 : RUN apt-get install -y nginx-full vim
---> Using cache
---> cc0c1662e009
Step 7 : RUN ifconfig lo:0 192.168.168.70 netmask 255.255.255.0 up
---> Running in 5d962ec4e35d
SIOCSIFADDR: Operation not permitted
SIOCSIFFLAGS: Operation not permitted
SIOCSIFNETMASK: Operation not permitted
SIOCSIFFLAGS: Operation not permitted
The command '/bin/sh -c ifconfig lo:0 192.168.168.70 netmask 255.255.255.0 up' returned a non-zero code: 255
๊ถํ ์ต์ ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์คํํ๋ฉด ๋ฃจํ๋ฐฑ ์ธํฐํ์ด์ค์ IP๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ถ๊ฐํ ์คํฌ๋ฆฝํธ๊ฐ ํ๋ ๋ ์์ต๋๋ค.
@cpuguy83 ๋ด Dockderfile
์ RUN
ํ๊ณ ์ถ์ iptable
ํญ๋ชฉ์ด ์ฝ 20์ค ์ ๋ ์์ง๋ง --cap-add=NET_ADMIN
๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ช
๋ น์ ์ปจํ
์ด๋๋ฅผ ์คํํ๋ ์ฌ๋๊ณผ ์ปจํ
์ด๋๋ฅผ ์คํํ๋ ์ปดํจํฐ(์ปจํ
์ด๋๊ฐ ๋ด๋ถ ์ฑ์ ์คํํจ)์ ๊ด๊ณ์์ด ๋ฐ์ํด์ผ ํฉ๋๋ค. ์์์ ๋
ผ์ํ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋/์ด๋ป๊ฒ ์ ์ํ์๊ฒ ์ต๋๊น?
@MatthewHerbst ๋ถํํ๋ iptables ๊ท์น์ ์ด๋ฏธ์ง์ ํจ๊ป ์ง์๋์ง ์๊ฑฐ๋ ์ง์๋์ง ์์ต๋๋ค.
@cpuguy83 ์ ๋ centos:6
์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ run /sbin/service iptables save
์ ์คํํ์ฌ ํ์ผ ์์คํ
์ ๊ท์น์ ์ ์งํ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ๋ค์ด iptables-persistent ํจํค์ง๋ฅผ ํตํด Ubuntu์ ๋ค๋ฅธ ๊ฒ๋ค์์ ์ ์ฌํ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํด๋น ํ์ผ์ ๋ํ iptables ๊ท์น์ ์์ฑํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์ค์ ๋ก ์ ์ฉํ์ญ์์ค. ์ปจํ
์ด๋๊ฐ ์คํ๋๋ ๋คํธ์ํฌ ์ํฉ์
๋งค์ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฐํ์์ ๊ท์น์ ์ ์ฉํด์ผ ํฉ๋๋ค.
ํธ์คํธ๊ฐ ์์ฑํ๋ ๊ฒ์ด ๋ ๋์ ์ ์์).
2016๋ 5์ 16์ผ 16:03์ "Matthew Herbst" ์๋ฆผ @github.com์ด ์์ฑํ์ต๋๋ค.
@ cpuguy83 ์ ๋ CentOS๋ฅผ ์ฌ์ฉ
ํ์ผ ์์คํ ์ ๊ท์น์ ์ ์งํฉ๋๋ค. ๋๋ ๊ทธ๋ค์ด ๋น์ทํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
iptables-persistent ํจํค์ง๋ฅผ ํตํ Ubuntu ๋ฐ ๊ธฐํ ๊ธฐ๋ฅ.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
@justincormack ์ ๊ทธ ์๊ฐ์ ๋ชปํ๋์ง ๋ชจ๋ฅด๊ฒ ์ด! ๊ฐ์ฌ ํด์!
docker service
์ฌ์ฉํ ๋ ๊ถํ์ด ํ์ํ ๋ช
๋ น์ ์ด๋ป๊ฒ ์คํํด์ผ ํฉ๋๊น? ๋ช ๋์ ์ปดํจํฐ์ ํธ์คํธ ์ด๋ฆ์ ์ค์ ํด์ผ ํ์ง๋ง ๋ถํํ๋ ์ด๋ฅผ ์ํด์๋ ๊ถํ์ด ํ์ํฉ๋๋ค.
@nostrebor ๋ ์ด ๊ณต๊ฐ ๋ฌธ์ ์ ๋งค์ฐ ๊ด๋ จ์ด ์์ต๋๋ค.
์๋น์ค๋ฅผ 1:1๋ก ๋ณต์ฌํ๋ ๋์ ์๋น์ค์ ์ด๋ค ์ต์
์ด ์์ด์ผ ํ๋์ง ํ๊ฐํ๊ณ ์์ต๋๋ค. ํน๊ถ ๋ชจ๋๋ ์๋น์ค์ ๋ํด 1.12์ ์์ ๊ฒ์
๋๋ค.
์ค์น๋ฅผ ์ํด ๋ฌด์ธ๊ฐ๋ฅผ ์ปดํ์ผํ๋ ๋์ปค ๋น๋๋ฅผ ์๋ํ๊ณ ์์ง๋ง CVMFS ๋คํธ์ํฌ ํ์ผ ์์คํ ์ ์กด์ฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ปดํ์ผํด์ผ ํฉ๋๋ค. ๋ฌผ๋ก --privileged๋ฅผ ์คํํ์ง ์๊ณ CVMFS๋ฅผ ๋ง์ดํธํ ์ ์์ผ๋ฏ๋ก Dockerfile์ ์ฌ์ฉํ์ฌ ์ ํ ํ ์ ์์ต๋๋ค.
@cpuguy83 @tlbtlbtlb ๊ธฐ๋ณธ์ ์ผ๋ก ๊ถํ ์๋ ๋์์ ์์กดํ๋ '์ธ์คํจ๋ฌ'์ ๊ฒฝ์ฐ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋ด๊ฐ '์ฌ์ํ ์ฌ์ฉ'์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ด ์๋๋ผ ๋คํธ์ํฌ ํ์ผ ์์คํ ์ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ก์ธ์ค๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๊ฒฝ์ฐ ์ค์น๋ ๋จ์ํ ์ผ๋ถ ์์นด์ด๋ธ์์ ํ์ผ์ ์ถ์ถํ๋ ๊ฒ์ด ์๋๋๋ค.
๋คํธ์ํฌ ํ์ผ ์์คํ ์ ๋ง์ดํธํ๋ ๊ฒ์ด ์ด์์ฑ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค. (์ฐ๋ฆฌ์ ๋ชจ๋ ๋์ ํ๊ฒฝ์ ์ด ํ์ผ ์์คํ ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋คํธ์ํฌ ํ์ผ ์์คํ ์ ๋ฐ์ด๋๋ฆฌ ์ฝ๋์๋ ์ฐ๊ฒฐํด์ผ ํ๋ ๋ค๋ฅธ ์ฝ๋๋ฅผ ๋น๋ํ๊ธฐ ๋๋ฌธ์ ํ์ํฉ๋๋ค.)
๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์๋ํด์ผ ํฉ๋๊น? ํธ์คํธ์ CVMFS๋ฅผ ๋ง์ดํธํ๊ณ ํด๋น ๋๋ ํ ๋ฆฌ๋ฅผ ์ปจํ ์ด๋ ๋ฑ๊ณผ ๊ณต์ ํด์ผ ํฉ๋๊น? ์ด ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ธ๋ถ ๋น๋ ์์คํ ์ ์ค์ ํ๊ณ ์ถ์ง ์์ต๋๋ค. ์ด๋ฏธ์ง์ ๊ธฐ๋ฐ์ด ๋๋ ์ด๋ฏธ์ง์๋ ์ด๋ฏธ ์์ ์ ์ํํ ์ ์ฒด ๋น๋ ์์คํ ์ด ์์ต๋๋ค. CVMFS๋ฅผ ๋ง์ดํธํ ์๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
Dockerfile์ ์ฌ์ฉํ์ฌ ์ด ์์
์ ์ํํ๊ฒ ๋์ด ๊ธฐ๋ปค์ง๋ง docker run --privileged
์ผ๋ถ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ docker ๋์ ๋ค๋ฅธ ๊ฒ์ ์ฌ์ฉํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ์ก์ธ์ค ๊ถํ์ด ์๋ _์๋_ ์ปจํ
์ด๋์ ํ์ผ ์์คํ
์ ๋ง์ดํธํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์คํฌ๋ฆฝํธ ๋ด๋ถ์ ๊ถํ ์๋ ๋ช ๋ น์ ๋ฐฐ์น/๋ฐํฅํ์ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ํํ๊ณ CMD ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋ ์ง์ ์ ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ฏ๋ก ๊ทธ๋ฐ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ํ ๊ถํ ์๋ ๋ชจ๋์์ ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์๊ณ ๋ชจ๋ ๊ฒ์ด ์๋ํฉ๋๋ค.
@drstapletron , CERN cvmfs ๋ฌธ์ ์ ๋ฐ๋ฅด๋ฉด ํ์ฌ๋ก์๋ ํธ์คํธ์์ ์ปจํ ์ด๋๋ก cvmfs๋ฅผ ๋ง์ดํธํ๊ฑฐ๋ ๊ถํ ์๋ ์ปจํ ์ด๋ ๋ด๋ถ์ cvmfs๋ฅผ ์ค์นํ๋ ๋ ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค.
์ด์ ๊ฒฝ์ฐ ์ฌ๊ธฐ์์ cmssw ๋
์์ ์ํ ๋์ปค ํ์ผ์ ์์ฑํ์ต๋๋ค.
https://github.com/iahmad-khan/system-admin/blob/master/cvmfs-inside-docker.Dockerfile
๋ฐ๋ผ์ ์ด ํ์ผ์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ (๋๋ cmssw dockerhub์์ ๊ฐ์ ธ์ฌ ์ ์์) P ๋ชจ๋์์ ์คํํ ์ ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒ์ด ์ด๋ฏธ ์ปจํ ์ด๋ ๋ด๋ถ์ ์์ต๋๋ค( ls /cvmfs/*)
์ด ๋ฌธ์ ์ ๋ํ ํผ๋๋ฐฑ์ ๋ชฉ๋ก์ด ๋ค์ ๊ธธ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์์์ ๋ค๋ฃจ์ด์ก๋์ง ํ์คํ์ง ์์ต๋๋ค. ๋๋ --privileged ๋น๋ ๋ช ๋ น์ ๊ฐ๊ณ ์ถ์ต๋๋ค. ํ์ฌ ์ฌ์ฉ ์ฌ๋ก๋ gentoo stage3์์ go ebuild๋ฅผ ๋น๋ํ ๋ ๋ถ๋ชํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ๋๋ค. ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด gentoo ํธ๋๋ถ์ ํ์ฌ ์ง์นจ์ผ๋ก ์ธํด 'umount -l /mnt/gentoo/dev{/shm,pts,} && umount -l /mnt/gentoo/{ proc,sys}' systemd๋ก ๋ถํ ๋ ์์คํ ์์... ๋ด stage3 ๋น๋๋ฅผ ๋์ปค ์ปจํ ์ด๋๋ก ์ด๋ํ๋ฉด ๋น๋์ ptrace ๋๋ go-1.7.1์ด ์๊ตฌํ๋ ๋ค๋ฅธ ์ ํ๋ ๊ธฐ๋ฅ์ด ํ์ํ ๋๊น์ง ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํฉ๋๋ค. ebuild๊ฐ ํ์ํ ๊ฒ ๊ฐ์ต๋๋ค.
์ง๊ธ์ ๋จ์ํ docker run ๋ช ๋ น ๋ด์์ ๋น๋๋ฅผ ์คํํ๊ณ ์ปค๋ฐํ ๋ค์ ๊ณ์ ์งํํ์ง๋ง ์๋ ๋จ๊ณ๋ฅผ ํผํ๊ธฐ ์ํด docker build ๋ช ๋ น ์์ฒด ๋ด์์ ptrace๋ฅผ ํ์ฑํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ ๋ ์ด ๊ธฐ๋ฅ์ ์ํฉ๋๋ค. ๋น๋ ํ๊ฒฝ์ ๋ง๋ค๊ณ ์ถ์ง๋ง ์ปค๋ ๋ชจ๋์ด ํ์ํ๊ณ ๋น๋ํ ๋ modprobe๊ฐ ์ ์ ํ๋ ฅํ์ง ์์ต๋๋ค. ์ด์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๊ตฌ์ฒด์ ์ผ๋ก ํน๋ณํ:
modprobe vcan && \
ip link add type vcan && \
ifconfig vcan0 up
์์ ํ ํฉ๋ฆฌ์ ์ธ ์ฌ์ฉ ์ฌ๋ก์ฒ๋ผ ๋ณด์ ๋๋ค.
@seltzy docker
๋๊ตฐ๊ฐ๊ฐ ๊ทํ์ ์ฌ์ฉ ์ฌ๋ก์ ํฉ๋ฆฌ์ฑ์ ์ธ์ ํ ๋๊น์ง ์จ์ ์ฐธ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ํคํ ์ฒ ๋ฐ ๊ธฐ๋ฅ ํฌํจ๊ณผ ๊ด๋ จํ์ฌ ๋งค์ฐ ์๊ฒฉํ๊ณ ์ค์ฉ์ ์ด๋ฉฐ ๋๋ดํ๋ฉฐ _์์ ์_ ๋ก๋๋งต์ ๋ง์ง ์๋ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ฌด์ํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
์ฐ๋ฆฌ ํ๋ฒํ ์ฌ๋๋ค์ ์ดํดํ ํ์๊ฐ ์์ต๋๋ค. docker
ํ์ ์์ ์(๋น์ฆ๋์ค ๊ณ ๊ฐ ๋ฐ ์
ํ ์๋น์ค ๊ฐ๋ฅ์ฑ์ด ์๋) ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑ์ํค๋ ์ํคํ
์ฒ ๊ฒฐ์ ์ ๋ด๋ฆฝ๋๋ค. ์ด๋ฌํ ๊ฒฐ์ ์ ๋งค์ฐ ํ๋ค๊ฒ ๋ง๋ค์ด์ง ์ฐ๋ฆฌ(๊ณต๊ฐ ์ต์ข
์ฌ์ฉ์)์ ๊ฑฐ์ ๊ฒน์น์ง ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ ์ถํ๋ ๋ฌธ์ .
๋ฌผ๋ก ๊ทธ๋ค์ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์์ง๋์ด๋ง ๋ฆฌ์์ค๋ฅผ ์์ ๋กญ๊ฒ ํ ๋นํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ํ์ฌ๊ฐ "์ฌ์ฉ์์ ์๊ตฌ๋ฅผ ์ง์งํ๊ฒ ๋ฐ์๋ค์ด๋" ๊ฒ์ผ๋ก ๋ฌ์ฌ๋๋ค๋ฉด ์์์ ๋ถ๋ฌ์ผ์ผํค๋ ์ค์ ์ ์ ๊ณตํฉ๋๋ค.
@tamsky ์๊ณ ํ์ จ์ต๋๋ค!
@tamsky ๋น์ ์ด ๋ถ๋ช ํ ์ํ๋ ๊ธฐ๋ฅ์ ํ๋ก์ ํธ์์ ์๋ฝํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ ๊ทธ๋ ๊ฒ ์๊ฐํ๋์ง ์ดํดํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ด๋ค ์ข
๋ฅ์ ๋น์ฆ๋์ค ๊ฒฐ์ ๊ณผ๋ ๊ด๋ จ์ด ์์ต๋๋ค. ์ฌ์ค ๋น๋ ์ --privileged
๋ ์ด์ํ ์ ์๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค.
๋น๋ ํ๊ฒฝ์์ modprobe
์ ๊ฐ์ ๊ฒ์ ๋์์ด ๋์ง ์์ผ๋ฉฐ ๋ ๊ฐ์ ๋น๋์์ ์์ ํ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ ์๋ ์์ต๋๋ค.
๋ ์์ ์ ๋น๋์ --privileged
๋ฅผ ๊ตฌํํ์ต๋๋ค. ์ด๊ฒ์ ์์ง๋์ด๋ง ๋ฌธ์ ๊ฐ ์๋๋ฉฐ ์ค์ ๋ก ๊ตฌํํ๋ ๊ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ๊ทธ๊ฒ์ ์ง์ํ๋ ๊ฒ์ด ๋ฌธ์ ์
๋๋ค.
๊ณ ๊ธ ์ฌ์ฉ์์ ๊ฒฝ์ฐ ๊ถํ ์๋ ์ง์์ ํฌํจํ ์ ์๋ ๊ธฐ์กด API๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ฌ์ฉ์ ์ ์ ๋น๋๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
์ฆ, ์ด ๋ฌธ์ ๋ ์ฌ์ ํ ์ด๋ ค ์์ต๋๋ค. ์ฌ๋๋ค์ด ๋ฃ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ดํดํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
@cpuguy83 ์ค๋ช ๊ฐ์ฌํฉ๋๋ค. ํด๋์ฑ ๋ฌธ์ ์ธ์ง ๋ชฐ๋์ต๋๋ค. ์ด์ ๋ํ ๋์ ์๋ง์ ์คํด์์ ๋น๋กฏ๋ ๊ฒ ๊ฐ๋ค.
ํน๊ถ ๋น๋๋ฅผ ๊ฐ๊ณ ์ถ์ ์ ํน์ ์ง๋ฉดํ์ ๋ ์ทจํด์ผ ํ ์ผ๋ฐ์ ์ธ ์ฒ ํ์ ์ ๊ทผ ๋ฐฉ์์ ๋ฌด์์ ๋๊น?
@seltzy ๊ทํ์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์ด ๊ธฐ๋ฅ์ ํ์์ฑ์ ๋ํ ํฉ๋ฆฌ์ ์ธ ์๊ฐ ์๋๋ผ๊ณ ํ์ ํ์ง ๋ง์ญ์์ค.
@cpuguy83 ์์ง ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ๋ต๋ณ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ ๊ธฐ๊ด์ ๋น๋ ์์คํ
์ ๋ด ์ปจํ
์ด๋์ ํ์ฌ ํด์ผ ํ๋ ๋คํธ์ํฌ ํ์ผ ์์คํ
์ ํตํด ๋ฐฐํฌ๋ฉ๋๋ค. ์ด๋ฅผ ์ํด์๋ ์ปจํ
์ด๋๊ฐ ๊ถํ ์๋ ๋ชจ๋์์ ์คํ๋์ด์ผ ํฉ๋๋ค. ์ํํธ์จ์ด ๋ฐฐํฌ๋ฅผ ์ํด ๋คํธ์ํฌ ํ์ผ ์์คํ
์ ์ฌ์ฉํ๊ธฐ๋ก ํ ์ฐ๋ฆฌ ๊ธฐ๊ด์ ๊ฒฐ์ ์ ์
์ ๋ฌผ๋ฆฌํ์์ ๋๋ฌธ ์ผ์ด ์๋๋๋ค. ๋น๋ ์ --privileged
๊ฐ ์ด์ ๋ถ๊ฐ๋ฅํ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ค๊ณ ์ฃผ์ฅํ์ง๋ง ์ด๊ฒ์ ์ ์ฌ์ฉ ์ฌ๋ก์ ์ ํ ๊ด๋ จ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ฐ๋ฐ ๋ชจ๋ธ์ ๋คํธ์ํฌ ํ์ผ ์์คํ
(์ ๋ง?)์ ์ฌ์ฉ์ผ๋ก ์ธํด ์์ด๋ฒ๋ฆด _์๋ ์๋_ ๋ชจ๋ ์ด์์ฑ์ ์ด๋ฏธ ํฌ๊ธฐํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ง์ดํธํ๊ธฐ ์ํด ๊ฐ๋ฐ ๊ธฐ๊ณ๊ฐ ํ์ํฉ๋๋ค.
@ cpuguy83 ์ถ์ ๋น์ ์ ์ฌ์ฉ์ ์ ์ ๋น๋๋ฅผ ์ธ๊ธํ์ต๋๋ค. ์ด์ ๋ํ ์ ๋ณด๋ ์ด๋์์ ์ฐพ์ ์ ์์ต๋๊น? ๊ฐ์ฌ ํด์!
์ปจํ ์ด๋ ์ด์์ฑ์ ๋ํ ์ด ๋ชจ๋ ๋ ผ์๋ ์ด์จ๋ ๊ฑฐ๋ํ ์ฒญ์ด์ ๋๋ค. 1๋จ๊ณ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ณ , ๊ถํ ๋ชจ๋์์ ์ปจํ ์ด๋๋ฅผ ์คํํ๊ณ , ํด์ผ ํ ์ผ์ ๋ชจ๋ ์ํํ ๋ค์, ๋์ปค ์ปค๋ฐ์ ์ฌ์ฉํ์ฌ ํด๋น ์ปจํ ์ด๋์์ ์ต์ข ์ด๋ฏธ์ง๋ฅผ ์์ฑํจ์ผ๋ก์จ ์ด๋ฏธ ๋์ผํ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
์ผ๋จ ๋์ปค ์ปค๋ฐ ์ต์ ์ ์ถ๊ฐํ๋ฉด ์ด๋ฏธ์ง ์ด์์ฑ์ ๋ํ ๋ชจ๋ ๊ฐ๋ ์ด ์ฌ๋ผ์ก์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ๋๋ค์๊ฒ 1๋จ๊ณ ๋์ 3๋จ๊ณ๋ก ์ด ์์ ์ ์ํํ๋๋ก ํ๋ ๊ฒ์ ์๋ฌด ๊ฒ๋ ์ป์ง ๋ชปํ๊ณ ๊ถํ ์๋ ๋น๋ ์ต์ ์ ์ค์ ๋ก ์ฌ์ฉํ ์ ์๋ ์ฌ๋๋ค์ ์ง์ฆ๋๊ฒ ํ ๋ฟ์ ๋๋ค.
@drstapletron ํ์ผ ์์คํ
์ ๋ง์ดํธํ๋ ๊ฒ์ด ๋ฐ๋์ ์ด์์ฑ์ ์์์ํฌ ์ ์๋ ๊ฒ์ ์๋๋๋ค(๋๊ตฐ๊ฐ๊ฐ ์ด๋ฏธ์ง์ ๋ง์ดํธ๋ ๊ฒ์ผ๋ก ์์ํ์ง ์๋ ํ).
์ฌ๊ธฐ์ ๋ฌธ์ ๋ ํ์ผ ์์คํ
์ ๋ง์ดํธํ ์ ์๋ ๊ธฐ๋ฅ์ด ์๋ค๋ ๊ฒ ๋ํ ๋ค๋ฅธ ๋ง์ ๋์ ์ผ์ ํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค๋ ๊ฒ์
๋๋ค.
@ctindel ์, ์์ฑํ ์ปจํ
์ด๋์์ ์ํ๋ ๋ชจ๋ ์์
์ ์ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ docker build
๊ฐ ์ง์๋๋ ์ด๋ฏธ์ง ๋น๋ ๋ฐฉ๋ฒ์ด๋ผ๋ ์ฌ์ค์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๋ ์ด๋ฏธ์ง๊ฐ ์ด์์ฑ _์๋_ ๊ฒ์ ๋ณด์ฅํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค.
ํด๋์ฉ ์ด๋ฏธ์ง๋ ์ฒญ์ด๊ฐ ์๋๋๋ค. ์ํฌ๋ก๋ ์ด์์ฑ์ Docker์ ์ฃผ์ ์ค๊ณ ๋ชฉํ์ ๋๋ค. ๋ง ๊ทธ๋๋ก ์ฐ๋ฆฌ์ ์ฃผ์ ์ง์.
@seltzy ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์์น๋ ๊ถํ์ด ์ด๋ค ์์ผ๋ก๋ ํธ์คํธ๋ฅผ ์์ ํ๋ ๋ฐ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ ๊ถํ์ด ํ์ํ ๋๋ถ๋ถ์ ํญ๋ชฉ์ ๋ฐํ์์ ์ํฉ๋๋ค.
์ฆ, ๋น๋ ์ ๋ช ๊ฐ์ง ์ฌํญ์ด ํ์ํ๋ค๋ ๊ฒ์ ํ์คํ ์ดํดํ ์ ์์ต๋๋ค(์: ์์ nfs ๋ง์ดํธ).... ํ์ง๋ง NFS์ ๊ฒฝ์ฐ์๋ ์ด๋ฏธ์ง๋ฅผ ์๋์ผ๋ก ๋น๋ํ๋ ๊ฒฝ์ฐ( docker build
์๋), ์ปจํ
์ด๋์ --privileged
๋๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ํ ์ ๊ณตํ์ง ์๊ณ ๋์ nfs ๋ด๋ณด๋ด๊ธฐ๋ฅผ ๋ณผ๋ฅจ์ผ๋ก ๋ง์ดํธํฉ๋๋ค.
@drstapletron mount
๋ --privileged
๋ ์ ํ๋ ๊ธฐ๋ฅ ์งํฉ๋ง ํ์๋ก ํ์ง ์์ผ๋ฉฐ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ํ๋ ํธ์คํธ์ ๋ํ ์ ์ฒด ๋ฃจํธ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๊ธฐ ๋๋ฌธ์ ์ ์ฒด ๊ถํ ๋ชจ๋๋ณด๋ค ๋ ๋นจ๋ฆฌ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ํจ์ฌ ๋์ต๋๋ค. ํ์ง. (์ฌ์ ํ ๋ณด์ ๋ฌธ์ ๊ฐ ์์ง๋ง ๋ ๊ด๋ฆฌํ๊ธฐ ์ฝ์ต๋๋ค.)
๊ทธ๋์ ๋๋ ์์ ํ ์ด์ ๊ฐ๋ฅํ๊ณ ํธ์คํธ๋ฅผ ์์ ํ์ง ์๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ง์ด ์คํ ์์ค์ด๋ฉฐ ์ฌ๊ธฐ์์ ๋ณผ ์
๊ธฐ๋ณธ์ ์ผ๋ก ํด๋์ฉ Docker ์ปจํ
์ด๋์์ Mock์ ์คํํ์ฌ ๋ง์ถคํ CentOS ISO ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ ์ถ์ต๋๋ค. Mock์ ๋ชจ๋ฅด๋ ์ฌ๋๋ค์ ์ํ ์ปจํ
์ด๋ํ๋ RPM ๋น๋์
๋๋ค. ๋ฌธ์ ๋ ์ปจํ
์ด๋๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ --privileged
๋๋ --cap-add
ํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ docker build
๊ฐ ํจ์์ฒ๋ผ ์๋ํ์ฌ ๋ช ๊ฐ์ง ์ธ์๋ฅผ ์ทจํ๊ณ ์ต์ข
๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ์ด ํ๋๊ทธ๊ฐ ์์ผ๋ฉด ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง! ๋์ปค ๋ด๋ถ์์ mock์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ทธ ๋๋ฌธ์ ์ ๋ชฝ์ ๋๋ค :(
Sending build context to Docker daemon 9.728 kB
Step 1 : FROM centos
---> 980e0e4c79ec
Step 2 : MAINTAINER Gregory Boddin
---> Using cache
---> 93e709c87f25
Step 3 : RUN yum install -y spectool mock
---> Using cache
---> 7006ef8d0276
Step 4 : RUN useradd mock -g mock
---> Using cache
---> bfb931c56d89
Step 5 : ADD *.cfg /etc/mock/
---> Using cache
---> 15521d2822b1
Step 6 : RUN su mock -c"/usr/bin/mock -r edge-5-x86_64 --init"
---> Running in 542a742b6017
INFO: mock.py version 1.2.17 starting (python version = 2.7.5)...
Start: init plugins
INFO: selinux disabled
Finish: init plugins
Start: run
ERROR: Namespace unshare failed.
@cpuguy83 ์ ๋ค์
์ฌ์ค --privileged on build๋ ์ด์ํ ์ ์๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค.
๊ด๋ฒ์ํ ํด๋์ฑ์ ํ์๋ก ํ์ง ์๋ ์ฌ๋๋ค์ ์ํด --privileged
๋ฅผ ํ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
๊ณต์ ๋ฌธ์์ ๊ฐ๋จํ ๋ฉ๋ชจ๋ ํฉ๋ฆฌ์ ์ธ ์ ์ถฉ์์ด ๋ ๊ฒ์
๋๋ค(์: _๊ฒฝ๊ณ : build
๋ช
๋ น์ --privilege
๋ฅผ ์ ๋ฌํ๋ฉด ์ด๋ฏธ์ง์ ์ด์์ฑ์ด ๋จ์ด์ง ์ ์์ต๋๋ค!_). ์ด๊ฒ์ ๊ฑฐ์ ๋ชจ๋ ์ฌ๋์ ์๊ตฌ ์ฌํญ์ ํด๊ฒฐํ ๊ฒ์
๋๋ค. ์ด๋ค ์ฌ์ฉ์๋ ์ด์์ฑ์ด ํ์ํ์ง ์๊ณ ์ด๋ค ์ฌ์ฉ์๋ ํ์ํฉ๋๋ค. ๊ฒฝ๊ณ ๋ ๋ชจ๋ ์ฌ๋์ ์๊ตฌ๋ฅผ ์ถฉ์กฑํ๊ธฐ์ ์ถฉ๋ถํ ๊ฒ์
๋๋ค.
build --privileged
์ ๋ถ์กฑ์ผ๋ก ์ธํด ํ์ฌ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋นํ ๋ณต์กํด์ง๋๋ค.
--non-portable
๋ผ๊ณ ํ ์ ์์ต๋๋ค. ๋๋ ์์ง docker์ ๋ฐฐํฌ ๋ถ๋ถ์ ์ฌ์ฉํ์ง ์์์ง๋ง ๊ฒฉ๋ฆฌ + ์ค๋ฒ๋ ์ด ํ์ผ ์์คํ
ํญ๋ชฉ์ ๊ทธ๊ฒ ์์ด๋ ์ ๋ง ์ ์ฉํ์ต๋๋ค.
๊ถํ ์๋ ์ปจํ ์ด๋๋ฅผ ์ค์นํด์ผ ํ๋ ๋ ์ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ ๊ฐ ํ ์ ์๋ ์ผ์ ์์ต๋๋ค. 3๋จ๊ณ ๋น๋, ์คํ, ์ปค๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ํํด์ผ ํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๊ณ ์์ต๋๋ค.
์ปจํ ์ด๋ ์ด์์ฑ์ ๋์ ๋ด ๋น์ฆ๋์ค์ ์๋ฌด ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ฌ์ค ๋๋ถ๋ถ์ ๋น์ฆ๋์ค์๋ ์๋ฌด ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ค์ํ ๊ฒ์ ์ ์ง ๊ด๋ฆฌํ๋ ์ํํธ์จ์ด๋ฅผ ์ค์ด๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ์์ ์ฌ์ฉ์ฑ๋ณด๋ค ์ด์์ฑ์ ์ ํํ๋ ๊ฒ์ด Docker์ ํด๋กญ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์ ๋ํด +1, setfacl์ ์ฌ์ฉํ๋ ๋น๋ ํ๋ก์ธ์ค์์ ๋น๋ ์ค์ ์คํจํ๊ณ ์ปจํ ์ด๋์์ ์๋น์ค๊ฐ ์์๋์ง ์์ต๋๋ค. ์ต์ข ์ฌ์ฉ์๋ก์ ์ฐ๋ฆฌ๋ ์ ํ๋์ด์๋ ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ์๋ง --priviledge ์ต์ ์ ์ฌ์ฉํ๊ณ ๊ธฐ๋ณธ๊ฐ์ ๋นํ์ฑํ๋์ด ์์ต๋๋ค.
์ด๊ฒ์ ๋ํด +1. ๋น๋ ํ๋ก์ธ์ค์์ /proc ๋ฐ /dev๋ฅผ ๋ง์ดํธํด์ผ ํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ dockerfile์ ์ผ๋ถ๋ก ๋ง์ดํธ ๋จ๊ณ๋ฅผ ๊ฐ์ง ์ ์์ด์ผ ํฉ๋๋ค.
@samsun387 ๋น๋ ํ๋ก์ธ์ค์ ์ด๊ฒ์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
@skshandilya setfacl์ ์ด์์ฑ์ด ์์ผ๋ฉฐ
@robhaswell "๊ถํ ์๋ ์ปจํ ์ด๋ ํ์"๋ ๋ณ๋ก ๋์์ด ๋์ง ์์ต๋๋ค. ์ค์ ๋ก ์ค์น ์ ๋ฌด์์ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
+1. ๋ชจ์ ์ด๊ธฐํ๋ ์ด๊ฒ์ ํ์๋ก ํฉ๋๋ค.
๊ฑฐ์ ์ ์ฒด ๋ฌธ์ ๋ฅผ ์ฝ์ต๋๋ค. ์ ์ฌ๋๋ค์ด 3๋
๋์ "์ด๊ฒ ์ ํ์ํด"๋ผ๊ณ ๊ณ์ ๋ฌป๋์ง ์ดํด๊ฐ ๊ฐ์ง ์์ต๋๋ค.
@Betriebsrat "X๊ฐ ์ด๊ฒ์ ํ์๋ก ํ๋ค"๋ ๊ฒ์ ๊ทธ๋ค์ง ๋์์ด ๋์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.
"X"๋ ๋ฌด์์ ํ๊ณ ์์ต๋๊น? ๋น๋ ๋จ๊ณ์์ "X"๊ฐ ์ด๊ฒ์ ํ์๋ก ํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
์๋ฅผ ๋ค์ด, /proc
๋ฐ /dev
๋ฅผ ๋ง์ดํธํ๋ ๊ธฐ๋ฅ์ด ์๋ ์์ ๊ฒฝ์ฐ๋ ์ค์ ๋ก ๋น๋ ๋จ๊ณ์ ์ ํฉํ ์์น๊ฐ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉฐ ์ด๋ฏธ์ง๊ฐ ํธ์คํธ์ ์ฐ๊ฒฐ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. ์ฌ๋ก.
"privileged"๋ ํฑํฌ์ ๋๋ค. ๊ทธ๊ฒ์ ์ ๋์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ ์ด๊ณ , ๋ชจ๋ ๋ณด์ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๊ณ , ์ผ๋ฐ์ ์ผ๋ก ์ฝ๊ธฐ ์ ์ฉ ์ฅ์์ ๋ํ ์ฐ๊ธฐ ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋๊ตฐ๊ฐ๋ ์๋ง๋ ๋งค์ฐ ํน์ ํ ์ผ์ ํ ์ ์์ด์ผ๋ง ํ๋ ๊ณณ์ ๋๋ค.
์ด๋ฌํ ์ง๋ฌธ์ ์ค์ ์ฌ์ฉ ์ฌ๋ก์ ๊ทธ๋ฌํ ์ฌ๋ก๋ฅผ ์ถฉ์กฑํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ป์ ์ ์๋๋ก ํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ๋ด๊ฐ "๋ณด์ ๊ธฐ๋ฅ"์ด๋ผ๊ณ ๋งํ ๋ ๋ ๊ฐ์ง๋ฅผ ์๋ฏธํฉ๋๋ค.
๋ด ๋ฌธ์ ๋ 21051์ ์ํด ํด๊ฒฐ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ง๊ธ์ ์ธ์ถ ์ค์ ๋๋ค. :)
@shykes ๋ 2013๋ 11์ 28์ผ @ https://github.com/docker/docker/pull/2839#issuecomment -29481246์ ๋งํ์ต๋๋ค::
์ฃ์กํฉ๋๋ค. ํ์ฌ ๋์์ธ์ '1 ์์ค, 1 ๋น๋'๋ฅผ ์ ์ฉํ๋ ๊ฒ์ด๋ฏ๋ก ์์ค ๋๋ ํ ๋ฆฌ ์ด์ธ์ docker ๋น๋์ ๋ํ ์ธ์๋ฅผ ํ์ฉํ์ง ์์ต๋๋ค.
์ผ๋ถ ๋น๋๋ ๊ถํ ์๋ ์์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ํ์ฌ ์ํํ ์ ์๋ค๋ ์ฌ์ค์ ์ดํดํฉ๋๋ค. ์ด๋ฅผ ์ ์ ํ๊ฒ ์ฒ๋ฆฌํ๋ ค๋ฉด 1) Dockerfile์ด ๊ถํ ์๋ ๋ฐฉ์์ผ๋ก ๋น๋ํด์ผ ํ ํ์์ฑ์ ํํํ๋๋ก ํ์ฉํ๊ณ , 2) ๋์ปค๊ฐ ๋น๋๋ฅผ ์ผ์ ์ค์งํ๊ณ ์ฌ์ฉ์์๊ฒ ์ํ์ ๋ํด ์ ์ ํ๊ฒ ๊ฒฝ๊ณ ํ๋๋ก ํ์ฉํ๋ ๊ถํ ๋ถ์ฌ/ํธ๋ฌ์ค ์์คํ ์ ๊ตฌํํด์ผ ํ ์ ์์ต๋๋ค. Dockerfile์ ์ถ์ฒ ๋ฐ ์ ๋ขฐ์ฑ์ ๋ํ ์ ๋ณด๋ฅผ ๋ ธ์ถํ ๋ค์ ๋น๋๋ฅผ ํ์ฉํ๊ฑฐ๋ ๊ฑฐ๋ถํ๋ ์ฌ์ฉ์์ ๊ฒฐ์ ์ ์์งํฉ๋๋ค.
@ cpuguy83 , "1 ์์ค, 1 ๋น๋" ์ํ์์ ๋์์ธ์ด ์ ํ ๋ณ๊ฒฝ ๋์์ต๋๊น?
Docker ํ๋ก์ ํธ๊ฐ ํด๋น ๋์์ธ์ ๋ณ๊ฒฝํ๊ณ ์ปค๋ฎค๋ํฐ์์ ์์ฒญํ ์ด ๊ธฐ๋ฅ์ ํ์ฉํ ์ํฅ์ด ์์ต๋๊น?
์์ Shykes์ ์ค๋ช ์ ์ด ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด "์ฐ๋ฆฌ๊ฐ ํด์ผ ํ ์ผ"์ด ๋ฌด์์ธ์ง ์ค๋ช ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋์์ ์ฌ์ฉ๋ ์ธ์ด("might")๋ ๋์ปค ํ๋ก์ ํธ์ ์ด ๋์์ธ ๋ณ๊ฒฝ์ ๊ฑฐ๋ถํ ์ถ๊ฐ ์ด์ ๋ฅผ ์ ์ํ ์ ์๋ ๋ง์ ๊ณต๊ฐ์ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
NEEDS_PRIVILEGED ์ ์ธ์ ์ถ๊ฐํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ง๋ง ๋น๋ ์ผ์ ์ค์ง์ ๋ํ ์ด ๋ชจ๋ ๊ฒ์ด ์์ต๋๊น? ์ค๋ฅ๋ก ์คํจํ๊ณ ์ค์ ๋ก ๊ถํ ์๋ ๋น๋๋ฅผ ํ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ์ด์์๊ฐ --privileged ์ต์ ์ ์ ๋ฌํ๋๋ก ํ์ญ์์ค.
@cpuguy83 ๋ฌธ์ ๋ ๋น๋์์ ํน๊ถ ๋ชจ๋๊ฐ ํ์ํ ์ฌ๋๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ ์ํ์ด ๋ฌด์์ธ์ง ์๋ฒฝํ๊ฒ ์ ์๊ณ ์๋ ๊ณ ๊ธ ์ฌ์ฉ์๋ผ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ถ๋ถ์ ์ด๋ฅผ ์๋ฝํ๊ณ ํ์ํ ๋จ๊ณ์ ๋ํ ๋น๋์ ์ผ๋ถ๋ก docker commit
๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
๋น์ ์ ์ฌ๋๋ค์ด ๋น๋์์ ํน๊ถ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ด๋ค ์์ผ๋ก๋ ๋ง์ง ์๊ณ ๊ทธ์ ๊ท์ฐฎ๊ฒ ๋ง๋ค๊ณ ์์ ๋ฟ์ ๋๋ค.
๋น์ ์ ๋ชฉํ๊ฐ ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ ์ง์ฆ๋๊ฒ ํ๋ ๊ฒ์ด๋ผ๋ฉด, ๋ช ๋ ๋์ ๊ณ์ ๋๋๋ ๋์ ์ด ๋ฌธ์ ๋ฅผ ์์งํ๊ฒ ๋งํ๊ณ ๋ซ์ผ์ญ์์ค.
"์ฑ๊ฐ์๊ฒ ํ๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ๋ฅผ ์์ ํ์ง ์์ ๊ฒ์ ๋๋ค"๋ผ๊ณ ๋งํ๊ณ ์ด ๋ฌธ์ ๋ฅผ ๋ซ์ต๋๋ค.
/์ค
@cpuguy83 , ๋ด ์ดํด์์ Mock์ unshare(2)
CLONE_NEWNS
ํ๋๊ทธ์ ํจ๊ป unshare(2)
๋ฅผ ์ฌ์ฉํ๋ฉฐ chroot/container ํ๊ฒฝ์ ๋ง๋ค ๋ ๋ค๋ฅธ ๊ฒ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ CAP_SYS_ADMIN
์ด์์ด ํ์ํฉ๋๋ค.
"X"๋ ๋ฌด์์ ํ๊ณ ์์ต๋๊น? ๋น๋ ๋จ๊ณ์์ "X"๊ฐ ์ด๊ฒ์ ํ์๋ก ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ฐ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ก์์๋ ๋ชจ๋ฆ ๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋ณ๊ฒฝํ ์ ์๋ ์ผ๋ถ ๋ ์ ์ฐ๋ ๊ธฐ์ ๋๋ค. ๋ฌธ์ ๋ ์ฐ๋ฆฌ ๋น์ฆ๋์ค๊ฐ "๋ณด์"(์ด ๋งฅ๋ฝ์์)์ด๋ ์ด์์ฑ ๋๋ ๋์ด๋ ์ฐ๋ ค ์ฌํญ์ ๋ํด ๊ด์ฌ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด ๋งํ ์ฐ๋ ๊ธฐ๋ฅผ ์ปจํ ์ด๋์ ๋ฃ๊ณ ๊ฐ์น ์๋ ์ผ์ ํ๊ณ ์ถ์ ๋ฟ์ ๋๋ค.
@PonderingGrower๊ฐ ๋งํ๋ฏ์ด ์ด์จ๋ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ํ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ํ๋ ๋์ ์ผ๋ง๋ ๋ง์ ์๊ฐ์ ๋ญ๋นํ๋๋์ ๋ฌธ์ ์ผ ๋ฟ์ ๋๋ค.
๋น๋์์ ํน๊ถ ๋ชจ๋๊ฐ ํ์ํ ์ฌ๋๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ ์ํ์ด ๋ฌด์์ธ์ง ์๋ฒฝํ๊ฒ ์๊ณ ์๋ ๊ณ ๊ธ ์ฌ์ฉ์์ ๋๋ค.
๋๋ ๊ทธ ๊ฐ์ ์ ๊ฐ๋ ฅํ๊ฒ ๋์ํ์ง ์์ต๋๋ค. ์ ๋ฐ์ ์ผ๋ก --privileged
๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ "๋๊ตฐ๊ฐ๊ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๊ณ ์ผ๊ธฐ ๋๋ฌธ์" ๋งน๋ชฉ์ ์ผ๋ก chmod -r 777
์คํํ๋ ๋์ผํ ๋ฒ์ฃผ์ ์ฌ์ฉ์์
๋๋ค.
์ฐ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ก์์๋ ๋ชจ๋ฆ ๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋ณ๊ฒฝํ ์ ์๋ ์ผ๋ถ ๋ ์ ์ฐ๋ ๊ธฐ์ ๋๋ค. ๋ฌธ์ ๋ ์ฐ๋ฆฌ ๋น์ฆ๋์ค๊ฐ "๋ณด์"(์ด ๋งฅ๋ฝ์์)์ด๋ ์ด์์ฑ ๋๋ ๋์ด๋ ์ฐ๋ ค ์ฌํญ์ ๋ํด ๊ด์ฌ์ด ์๋ค๋ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์ "์ด ์ปจํ ์คํธ์์"๋ ํธ์คํธ์์ "์์ ์ ์ฐ๋ ๊ธฐ" ๋ฃจํธ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
@thaJeztah ๋๋
๋น๋ํ๋ ๋์ dind๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ํ๋ ์ปจํ ์ด๋ ๋ด๋ถ์ ์ผ๋ถ ์ปจํ ์ด๋๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌ์ฑํ๋ ค๋ฉด ์ด ๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค.
์ฌ๊ธฐ์ 3๋ ๋์ ๋ฌด์จ ์๊ธฐ๋ฅผ ํ๋๊ฑฐ์ผ?
docker run
์๋ --cap-add
, --cap-drop
๋ฐ ๊ธฐํ ์ต์
์ด ์์ต๋๋ค. ๊ทธ๋์ RUN
์์ ๋ช
๋ น Dockerfile
๋์ผํ ์ต์
์ ๊ฐ๊ณ ์ถ์ด. ๋ฐ๋ผ์ Dockerfile
๋ ์์ ์์คํ
์ ์์ฒญ์ ๋ณด๋ด๊ณ ์ผ๋ถ ๊ถํ์ ์ถ๊ฐ/์ญ์ ํ๋๋ก ์์ฒญํฉ๋๋ค.
์์ ์์คํ ์ ์ด๋ฌํ ์์ฒญ์ผ๋ก ์ํ๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์์ ๋ํ์์ผ๋ก ๋ง๋ค ์ ์๊ณ GUI ํ์ธ ๋ํ ์์ ๋ฑ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ์์ ์ด๋ฌํ ์์ฒญ์ ํด๊ฒฐ์ ๋ํด ๋ ผ์ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์๋น์์ ๋์ปค ์ฌ์ฉ์๋ ๋น๋ ๋ช ๋ น์์ --cap-add ๋๋ --privileged ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์คํ ๋ช ๋ น์ ์๋ ๊ฒ์ ๋ชจ๋ฐฉํ๊ธฐ๋ฅผ ์ํฉ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ์ง ๊ด๋ฆฌ์๊ฐ ์ด ํน์ ์ธ์คํด์ค์์ ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ฒ์ ์ ๊ณตํ๋ ๋ฐ ๊ด์ฌ์ด ์์์๋ ๋ถ๊ตฌํ๊ณ ์ด ํฐ์ผ์ด 3๋ ๋์ ์ด๋ ค ์๋ ์ฌ๋๋ค๊ณผ ํจ๊ป ๊ณ์ํด์ ์ฐจ์๋ฒจ์ด ์ธ๋ฆฌ๋ ๊ฒ์ ๋๋ค.
@ctindel ์ด๊ฒ์ ํ์คํ ์ด ๋ฌธ์ ์ ๋ฌธ์ ์
๋๋ค. docker build --cap-add
์ RUN --cap-add
์ฌ์ด์ ๊ฐ๊ฒฉ์ด ์์ต๋๋ค.
์ด๋ค ์ฌ๋๋ค์ docker build --cap-add=caps_array
๋ง์ผ๋ก ์์ ์์คํ
์ ๊ถํ ์์ฒญ์ ํด๊ฒฐํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ทธ๊ฒ์ ๋ฌด์์
๋๊น? caps_array.include? requested_cap
์
๋๋ค.
์ด๋ค ์ฌ๋๋ค์ pre_requested_caps.include? requested_cap
์ํฉ๋๋ค. ์ด๋ค ์ฌ๋๋ค์ ์ํ๋ stdout << requested_cap, stdin.gets == 'y'
K2661์ ์ฌ๋๋ค์ด ์ํ๋ gui_confirm requested_cap
. ์ด๋ค ์ฌ๋๋ค์ ํ์คํ UAC_fullscreen_dialog requested_cap
์ํ ๊ฒ์
๋๋ค.
requested_cap
์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉ์์ ์ทจํฅ์ ๋ฐ๋ผ ๋ค๋ฅด๋ฉฐ ์ด ์ง๋ฌธ์ ์ ๋ ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํ์ง๋ง RUN --cap-add
๋ ์ฌ๋์ ์ทจํฅ๊ณผ ์๋ฌด ์๊ด์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฌด์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๊น?
@andrew-aladev ๊ทํ์ ๊ฒ์๋ฌผ์ด ๋งํ๋ ๋ด์ฉ์ ์ ๋ง ์ดํดํ์ง ๋ชปํฉ๋๋ค. ์์ ์ ์ฌ๋๋ค์ด ์ ์ดํ ์ ์๋ ํ์ฌ ์ํํธ์จ์ด(RPM, DEB ๋ฑ)๊ฐ ์๊ณ "๋์ปค ๋น๋" ์๊ฐ์ ์ด๋ฏธ์ง์ ์ค์นํ๊ธฐ๋ฅผ ์ํ๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์นํ๊ธฐ ์ํด ์ถ๊ฐ ๊ธฐ๋ฅ์ด ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ํ์ฌ RPM์ด๋ฏ๋ก ์ค์น ๋จ๊ณ์์ ๊ถํ ์ฆ๊ฐ ์๊ตฌ ์ฌํญ์ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๊ทธ๋ค์ ์ด๋ฌํ ํฅ์๋ ๊ธฐ๋ฅ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์คํํ๊ณ ์ํํธ์จ์ด๋ฅผ ์ค์นํ ๋ค์ ํด๋น ์ปจํ ์ด๋์์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๊ณ ํต์ค๋ฝ๊ณ ๋์ผํ ๋์ด ํ๋ก์ ์ผ๋ก ๋ฌ์ฑ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋น๋ ์ cap-add๋ฅผ ๊ธ์งํ ๊ธฐ๋ฅ์ ์ด์ ๊ฐ ์์์ ๋ถ๋ช ํ ๋ณด์ฌ์ค๋๋ค.
@ctindel ์ ์์ด
์์์. glibc๋ฅผ ์ด๋จธ์งํ๋ ค๊ณ ์๋ํ๋๋ฐ ptrace not permitted
๋ฐ์์ต๋๋ค.
docker
์์ฒด์ ์ผ๋ก ๊ธฐ๋ฅ์ด ์ฆ๊ฐ/๊ฐ์๋ ์ปจํ
์ด๋๋ฅผ ์คํํ ์ ์์ต๋๋ค. RUN
๋ช
๋ น์ Dockerfile
--cap-add
, --cap-drop
๋ฑ์ ์ง์ํด์ผ ํฉ๋๋ค.
Dockerfile
RUN --cap-add=SYS_PTRACE -- emerge -v1 glibc
๊ฐ ์๋ค๊ณ ์์ํด ๋ด
์๋ค. ์ด๋ป๊ฒ ์๋ํ ๊น์?
SYS_PTRACE
ํฉ๋๋ค.์ด ๋ฌธ์ ์ ๋ํด ์ค์ ๋ก ๋ ผ์์ ๋ฒ์ด๋ ์ฌ๋์ ์๋ฌด๋ ์์ต๋๋ค. ์ฌ๋๋ค์ ์ด๋ฌํ ๊ธฐ๋ฅ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ ์ ๋ํด ๋ ผ์ํ๊ณ ์์ต๋๋ค.
@thaJeztah๊ฐ ๋งํ๋ค
์ ๋ฐ์ ์ผ๋ก --privileged๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ chmod -r 777์ ๋งน๋ชฉ์ ์ผ๋ก ์คํํ๋ ๋์ผํ ๋ฒ์ฃผ์ ์ฌ์ฉ์์ ๋๋ค.
์ด ์ฌ๋์ log :info, requested_cap; return privileged?
๋ณด๋ค ๋ ์ ์ฐํ ์ ํจ์ฑ ๊ฒ์ฆ ๋ฐฉ๋ฒ ์ ์ํฉ๋๋ค.
@ctindel ๋น์ ์ด ๋ง
NEEDS_PRIVILEGED ์ ์ธ์ ์ถ๊ฐํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ง๋ง ๋น๋ ์ผ์ ์ค์ง์ ๋ํ ์ด ๋ชจ๋ ๊ฒ์ด ์์ต๋๊น? ์ค๋ฅ๋ก ์คํจํ๊ณ ์ค์ ๋ก ๊ถํ ์๋ ๋น๋๋ฅผ ํ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ์ด์์๊ฐ --privileged ์ต์ ์ ์ ๋ฌํ๋๋ก ํ์ญ์์ค.
์์ ๋ํ์์ผ๋ก ๋ง๋ค๊ณ ์ถ์ต๋๋ค. stdout << requested_cap, stdin.gets == 'y'
์ํฉ๋๋ค. ์ด๊ฒ์ ํ์ ๊ธฐ๋ฅ์ ๊ฒ์ฆํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ ์
๋๋ค.
@cpuguy83์ด ๋งํ๋ค
๋๊ตฐ๊ฐ๋ ํดํน์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋งค์ฐ ๊ตฌ์ฒด์ ์ธ ์ผ์ ํ ์ ์์ด์ผ ํฉ๋๋ค.
์ด ๋จ์๋ docker build --cap-add=caps_array
caps_array.include? requested_cap
์ํฉ๋๋ค. ์ด๊ฒ์ ํ์ ๊ธฐ๋ฅ์ ๊ฒ์ฆํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ ์
๋๋ค.
๊ทธ๋์ ์ ๋ RUN
in Dockerfile
์ฌ์ ํ --cap-add
, --cap-drop
๋ฑ์ ์ง์ํ์ง ์๋ ์ด์ ๋ฅผ ๋ฌป๊ณ ์์ต๋๋ค. ์๋ฌด๋ ๊ทธ๊ฒ์ ๋ํด ๋
ผ์ํ์ง ์์ต๋๋ค. 3๋
์ด ์ง๋ฌ๋ค!
@andrew-aladev ๋น๋๊ฐ ๋ฉ์ธ ์์ง์์ ์ฌ์์ฑ/๋ฆฌํฉํฐ๋ง/๋ถ๋ฆฌ๋ ๋๊น์ง dockerfile ๊ตฌ๋ฌธ์ด ๊ณ ์ ๋์ด ์๋ค๋ ๊ฒ์ด ๋ถ๋ช ํ๊ธฐ ๋๋ฌธ์ ์๋ฌด๋ ๊ทธ ๊ตฌ๋ฌธ์ ๋ํด ๋ ผ์ํ์ง ์์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. https://github.com/docker/docker/issues/29719#issuecomment -269342554
๋ ๊ตฌ์ฒด์ ์ผ๋ก ๋งํ๋ฉด ๋ฌธ์ ์ ์ ๋ชฉ๊ณผ OP๊ฐ --privileged ๋น๋๋ฅผ ์์ฒญํ๊ณ ์์ต๋๋ค.
์ด๊ฒ์ Fonzie๋ฅผ ์ฟต์พ ๊ฑฐ๋ฆฌ๊ฒ ํฉ๋๋ค. .
build
๋จ๊ณ์์ strace
๋ฅผ ์คํํ ์ ์์ผ๋ฉด ๋ง์ ๋์์ด ๋ฉ๋๋ค.
ํ์ฌ ๋๋ฒ๊ทธ์ ํ์ํ ๋ชจ๋ ๊ฒ์ run
๋จ๊ณ๋ก ์ด๋ํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ด์์ ์ด์ง๋ ์์ต๋๋ค.
build
๋จ๊ณ๊ฐ ์๋ run
์์ ์๋ํ๋ ์ด์ ๋ฅผ ์๋ ์ฌ๋์ด ์์ต๋๊น? ์ฆ, ์ญ์ฌ์ ์ด์ .
๋ง์ ๊ถํ์ด๋ ๊ตฌ์ฑ ์์ด ์๋ํ๋ strace
๋ํ ๋์์ด ์์ต๋๊น?
์ด์ ๋ํ ์ ์๋ ์๋ฃจ์
/ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
https://github.com/docker/docker/issues/6800#issuecomment -50494871 :
๋์ปค ๋น๋์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ "๋น๋ ์ปจํ ์ด๋"๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
docker run --cap-add [...] mybuilder | docker build -t myimage -
๋๊ตฐ๊ฐ(์๋ง๋ @tiborvass) ์ด์ ๋ํด ์์ธํ ์ค๋ช
ํ ์ ์์ต๋๊น? ์ฌ๊ธฐ์ mybuilder
๋ ๋ฌด์์
๋๊น?
์ผ๋ถ ENTRYPOINT ๊ฐ ํฌํจ๋ ์ด๋ฏธ์ง ์ด๋ฆ ? ๋๋ [...]
๋ฐ mybuilder
์ ์ด๋ฏธ์ง ๋ถ๋ถ์ ๋ค์์ ์ฐธ์กฐํฉ๋๋ค.
์ ์คํฌ๋ฆฝํธ์? ๊ทธ๋ฆฌ๊ณ docker run
๊ฐ context.tar.gz๋ฅผ docker build -
์ ์ ๋ฌํ๋๋ก ์ด๋ป๊ฒ ์ค๋ํฉ๋๊น?
๊ทธ๊ฒ์ด ์ ๋ง๋ก ์ฌ๊ธฐ์์ ์ผ์ด๋๊ณ ์๋ ์ผ์ด๋ผ๋ฉด. ๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค, Steffen
@sneumann mybuilder
๋ ์ด๋ฏธ์ง ์ด๋ฆ์ด๊ณ ์ค์ ๋ก CMD
๋๋ ENTRYPOINT
์์ต๋๋ค. ์ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋ํ๋ ๊ณ์ฝ์ mybuilder
๊ฐ ์ปจํ
์ด๋ ๋ด์์ ์ปจํ
์คํธ๋ฅผ tar
ํด์ผ ํ๊ณ stdout์ผ๋ก ๋ณด๋ด์ผ ํ๋ค๋ ๊ฒ์
๋๋ค. ์ฆ์ ์ ๋ฌ๋๋ค docker build
'์ ํ์ค ์
๋ ฅ ์ ๊ด ๋๋ถ |
ํ๊ณ ๋ํ ์ปจํ
์คํธ ๊ฒฝ๋ก ๋๋ฌธ์ ์ปจํ
์คํธ๋ก ๊ฐ์ฃผ docker build -t myimage -
์ธ -
.
์ฝ๋๋ฅผ ๋ณด๋ฉด ์ฝ๊ฐ ์ด์ํฉ๋๋ค. build
๋ช
๋ น์์ ์ด ์ต์
์ ์ฌ์ฉํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
run
: ์ฌ๊ธฐ์ container
๋ run
์๋ฏธํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. - https://github.com/docker/docker/blob/bb0a532fc21cb6b9390fb7e5eb0054bdc8045bbc/cli/command/container/opts.go #L485.build
: https://github.com/docker/docker/blob/bb0a532fc21cb6b9390fb7e5eb0054bdc8045bbc/cli/command/image/build.go#L108.๋ ๋จ์๊ฐ์๋ ์ฌ๋์ด ์ ์ ์ฉ๋์ง ์๋์ง ์ ์ ์์ต๋๊น?
@mbana --security-opt
๋ "credentialspec"์ ์ง์ํ๋ ๊ธฐ๋ณธ Windows ์ปจํ
์ด๋์ฉ์
๋๋ค. https://github.com/docker/docker/pull/23389
๋ฏธ๋์ build
๊ฐ ptrace
ํ์ฑํํ๋๋ก ์ด๊ฒ์ ์์ ํ๊ณ ์ง์๋๋๋ก ํ ์ ์์ต๋๊น?
์ฌ๊ธฐ์ ๊ด์ฌ์ด ์๋ ์ฌ๋์ ์ํด ๋ค์๊ณผ ๊ฐ์ ์ข์ ๋งํฌ๊ฐ ์์ต๋๋ค.
run
๋ฅผ build
ํฉ๋๋ค.ํน์ ๊ถํ์ด ๋ถ์ฌ๋ ์์
์ ์๊ตฌํ์ง ์๋๋ก ๋น๋๋ฅผ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ๊ธฐ๋ฅ์ด ํ์ํ์ง ์๋ค๋ ๋ค์ํ ์ฌ๋๋ค์ ์ฃผ์ฅ์ ๋ง์ด ๋ณด์์ง๋ง "๋์ปค์ ๋์ปค" ๊ฒฝ์ฐ์ ๋ํด ์ํํ ์์
์ ๋ํ ์ ์์ ์์ต๋๋ค. ๋น๋์์ docker
๋ช
๋ น์ ์คํํด์ผ ํ๋ ๊ฒฝ์ฐ, ์๋ฅผ ๋ค์ด ์ด ์์ ํฌํจํ๋ ค๋ ์ผ๋ถ ์ด๋ฏธ์ง๋ฅผ ํ๋ค์ดํ๊ฑฐ๋ ํ์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ค๋ฉด ์ผ์ข
์ ๊ถํ ์์ด ์ด ์์
์ ์ํํด์ผ ํฉ๋๋ค. ๋น๋ ์ต์
?
์ง๊ธ์ docker run
๋ฐ docker commit
์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํ์ง๋ง docker build
๊ฐ ์ด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ง์ํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์
๋๋ค.
@scjody ๋น์ ์ด ์ํ๋ ๊ฒ ๊ฐ๊ตฐ์ #31257
@ cpuguy83 ์ด ๊ฒฝ์ฐ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ํ์คํ์ง ์์ง๋ง ๋ณํฉ๋๋ฉด ํ ๋ฒ
์๋ ํ์ธ์, ์ด ๋ชจ์์ ์ ์ด๋ฆ์ ๋ฃ๊ณ ์ถ์ต๋๋ค. ์๋๋ฉด ๋๊ตฐ๊ฐ๊ฐ ๋๋ฅผ ๊ฐ๋ฆฌํฌ ์ ์๋ ๋ด ๋ฌธ์ (์ฌ๊ธฐ์๋ docker noob)์ ๋ํ ๋ค๋ฅธ ์๋ฃจ์ ์ด ์์ต๋๊น?
๊ณต์ centos/systemd ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ Saltstack์ผ๋ก ํ๋ก๋น์ ๋ํ๋ ค๊ณ ํฉ๋๋ค. ์ด๊ฒ์ ํน๊ถ ๋ชจ๋ ์์ด๋ ํ ์ ์๋(AFAIK) systemd๋ก salt-minion ๋ฐ๋ชฌ์ ์์(๊ทธ๋ฆฌ๊ณ ์๋ง๋ ๋ค์ ์์)ํด์ผ ํฉ๋๋ค.
@onlyanegg ๊ทธ๋ฐ ์ํฉ์์ Saltstack์ ๋น๋์ ๊ธฐ๋ฅ์ ํฌ๊ฒ ๋์ฒดํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ RUN
๋ฌธ์ ์ ์ปจํ
์ด๋์์ ์คํ๋๋ฉฐ ์ด ์ง์ ์์ ์ด์ ๋น๋ ์ปจํ
์ด๋๊ฐ ์ค์ง๋๊ณ ์ด๋ฏธ์ง/๊ณ์ธต์ ์ปค๋ฐ๋ฉ๋๋ค.
์ปจํ
์ด๋๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ปค๋ฐ( docker commit
)ํ์ฌ ๋น๋๋ฅผ ์ํํ๋ ๊ฒ์ ๊ณ ๋ คํ์ต๋๊น?
์๋ตํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค, @thaJeztah. RUN
์ง์๋ฌธ์ด ๋ฌด์์ธ์ง ๋ชฐ๋์ต๋๋ค. ๋๋ ์ด ๋ฌธ์ ์ ๋๋ถ๋ถ์ ์ฝ์์ผ๋ฏ๋ก docker build
-> docker run
-> docker commit
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๊ณ ์์ผ๋ฉฐ ์ด๊ฒ์ด ๊ฒฐ๊ตญ ๋ด๊ฐ ํ ์ผ์
๋๋ค. ๋ด ์ด๋ฏธ์ง๋ฅผ ์ค๋ช
ํ๋ ๋จ์ผ ํ์ผ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค. ๋ ๊น๋ํด ๋ณด์
๋๋ค. ์๋ง๋ ๋๋ ๊ทธ ๋ชจ๋ ๋จ๊ณ๋ฅผ ํจ์ปค ํ์ฒ๋ฆฌ๊ธฐ์ ๋ฃ์ ์ ์๊ณ ๊ทธ๋ ๊ฒ ๋ ๊ฒ์
๋๋ค.
์ ์ด๋ ๊ฒ ๋ฌด์๋นํ๋ ๊ฑธ๊น์? ์ปจํ ์ด๋, kubernetes, minikube, CI์์ docker ์ฌ์ฉ ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ ํตํฉ ์๋์ ์ด ๊ธฐ๋ฅ์ ์ ๋ง ์ค์ํฉ๋๋ค.
@onlyanegg ๊ถํ ๋ชจ๋ ์์ด RUN
๋ช
๋ น์ ํน๊ถ ๋ชจ๋๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ์๋ํ์ง ์์ต๋๋ค") ๊ธฐ๊บผ์ด ์ดํด๋ณด๊ฒ ์ต๋๋ค!
@derberg ์ ํํ! ์ปจํ ์ด๋, CI, CD ์๋์๋ ๋น๋ ๋๊ตฌ๊ฐ (๋ณด์์ ์ธ ์๋ฏธ์์) ํฌํจ๋ ์ ์๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ถํ ๋ชจ๋๋ฅผ ํ์ฉํ๋ฉด Jenkins, Travis, Codeship ๋ฑ๊ณผ ๊ฐ์ CI ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ํฌ๊ฒ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ๋์ผํ ์ง๋ฌธ: ๊ถํ ๋ชจ๋๊ฐ ํ์ํ Dockerfile์ด ์๋ ๊ฒฝ์ฐ ๋์์ ์ ์ํ๊ธฐ ์ํด ์ดํด๋ณด๊ณ ์ถ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค!
@jpetazzo๋ ๋ด๋ถ์ ๋์ปค๊ฐ ์๋ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์ป์ผ๋ ค๊ณ ์๋ํฉ๋๋ค.
FROM ubuntu:16.04
# Get dependencies for curl of the docker
RUN apt-get update && apt-get install -y \
curl \
sudo \
bash \
&& rm -rf /var/lib/apt/lists/*
RUN curl -sSL https://get.docker.com/ | sh
์ด์ ๋น๋ํ๊ณ ์์ํ์ญ์์ค. ์์ ํ service docker start
๋ฅผ ์คํํ์ฌ ๋์ปค ๋ฐ๋ชฌ์ ์์ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ service docker status
์๋น์ค์ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
@jpetazzo ech, ๋ฐฉ๊ธ ๋น์ ์ด https://github.com/jpetazzo/dind์ ์ ์์์์ ์์์ฐจ๋ ธ์ต๋๋ค :) ๊ทธ๋์ ๋น์ ์ ๋์ปค ๊ฐ๋ ์ ๋์ปค๋ฅผ ์๊ณ ์์ต๋๋ค :)
์ด์จ๋ ์คํํ๋ ค๋ฉด ํน๊ถ ํ๋๊ทธ๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์ด์ ์ด๋ค ํ๊ฒฝ์์ ์์ ํ๊ณ ๋ด๋ถ์ ๋ฏธ๋ฆฌ ๊ตฌ์ฑ๋ ์ผ๋ถ ํญ๋ชฉ(์: ์ฌ์ ์ค์น๋ ๊ตฌ์ฑ ์์ ๋๋ ๊ธฐํ ์์๊ฐ ์๋ minikube)์ด ํฌํจ๋ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ํ๋ ๊ทธ๋ฃน์ ์์ํ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด docker build
์ NFS ๋๋ SMB ๊ณต์ ๋ฅผ ๋ง์ดํธํ๋ ๋ฐฉ๋ฒ์ด ์์ง ์์ต๋๊น?
@derberg ๋น๋ ์ปจํ
์ด๋๊ฐ --privileged
์คํ ์ค์ด๋๋ผ๋ ํด๋น ๋จ๊ณ๋ ์๋ํ์ง ์์ต๋๋ค. ๋์ปค ํจํค์ง(๋ฐ ์ค์น ์คํฌ๋ฆฝํธ)๋ (์๋ฅผ ๋ค์ด) Ubuntu 16.04์ ์ปค๋ ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค.
์ด๊ฒ์ด --privileged
๊ฐ docker build
๋ํด ๋์ ์๊ฐ์ธ ์ด์ ์
๋๋ค. ์๋ํ๋ฉด _host_์์ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
docker๋ _running_ํ ๋ ๊ถํ์ด ํ์ํ์ง๋ง ์ค์น ์์ฒด์๋ ์ด๊ฒ์ด ํ์ํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค์์ ์ด๋ฏธ์ง์ ๋์ปค๋ฅผ ์ค์นํ๊ธฐ ์ํด ์คํํ๋ ๋จ๊ณ์ ๋๋ค.
docker build -t foo -<<'EOF'
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common \
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable"
RUN apt-get update && apt-get install -y docker-ce \
&& rm -rf /var/lib/apt/lists/*
EOF
๊ทธ๋ฆฌ๊ณ ๋น์ ์ ๊ทธ๊ฒ์ ์ ์คํํ ์ ์์ต๋๋ค (์ฌ๊ธฐ์ --privileged
๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ง ๋ ์ธ๋ถํ๋ ๊ถํ์ด ๊ฐ๋ฅํฉ๋๋ค):
docker run -it --rm --privileged -v /var/lib/docker foo dockerd --debug
๋ค์์ ๊ถํ ๋ชจ๋์์ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋น๋ํด์ผ ํ๋ ์ฌ๋๋ค์ ์ํด ์ด ๋ฌธ์ ๋ฅผ ์ฐํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ํด๊ฒฐํ ์๋ ์์ง๋ง ์ผ๋ถ ๊ฒฝ์ฐ์๋ ๋์์ด ๋ ์ ์์ต๋๋ค.
์ด ๋ฐฉ๋ฒ์๋ Dockerfile, docker-compse ํ์ผ ๋ฐ ์ ธ ์คํฌ๋ฆฝํธ๊ฐ ํ์ํฉ๋๋ค.
์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๋ฐ ํ์ํ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค. ์ ์ผํ ์ฐจ์ด์ ์ ๊ถํ ์๋ ์์ ์ ์ํํด์ผ ํ๋ ์์น์์ ์ค์งํ๊ณ ํฌํจํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ์คํฌ๋ฆฝํธ๋ก docker-compose์์ ์คํํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด:
FROM ubuntu:16.04
RUN apt-get update && apt-get install <your packages>
# And more commands
......
## Below are the operations you intended to run in privileged mode when building the image, which does not work.
# More commands....
## But they now are moved to a separated shell script and it will be included in the image
COPY further-commands-to-run-in-privileged-mode.sh /
ํน๊ถ ๋ชจ๋์์ ์คํํด์ผ ํ๋ ๋ ๋ง์ ๋ช
๋ น์ ์ด์ further-commands-to-run-in-privileged-mode.sh
์์ต๋๋ค. ์ด๋ฏธ์ง์ ํฌํจ๋์ด ์์ผ๋ฉฐ ๋์ค์ docker composer์์ ์คํํ์ฌ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์๋ฃํฉ๋๋ค.
์์ฑ ํ์ผ์ด ํต์ฌ์ ๋๋ค. ๋จผ์ ์์ Dockerfile์์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ ๊ถํ ์๋ ๋ชจ๋ ์์ ํด๋น ์ด๋ฏธ์ง์ ์ปจํ ์ด๋๋ฅผ ์์ํ ๋ค์ ๊ถํ ์๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด:
version: '3'
services:
your_service:
container_name: your_container
# First build the image from the Dockerfile
build:
# Change this to where you keep above Dockerfile
context: ../docker-build
image: "your_image_name:your_image_tag"
# Then start a container from the just built image in privileged mode to finish what's left
entrypoint: /further-commands-to-run-in-privileged-mode.sh
privileged: true
์๋ ๋จ๊ณ๋ ์ ์คํฌ๋ฆฝํธ๋ก ์ ์ฅํ ์๋ ์์ต๋๋ค.
# First build the image and container(in privileged mode)
docker-compose -f docker-compose.yml up
# Then commit the temporary build container to a new image, change the ENTRYPOINT to what you want
docker commit \
-c 'ENTRYPOINT ["/bin/bash"]' \
<build container name> \
<final image name>:<final image tag>
# Remove the temporary build container
docker rm <build container name>
@thaJeztah ์ค์น์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋น๋ ์ค์ ๋์ปค ์๋น์ค๋ฅผ ์์ํ๊ณ ์์์์ ๊บผ๋ธ ์ด๋ฏธ์ง์์ ์ฌ์ฉํ ์ ์๋๋ก ์ผ๋ถ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
Dockerfile์ ๋ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํ๋ฉด docker ์๋น์ค๊ฐ ์๋ํ์ง ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
#!/bin/bash
service docker start
sleep 20
service docker status
docker pull busybox
@derberg ์๊ฒ ์ต๋๋ค! _๊ฐ์ธ์ ์ผ๋ก_ dind
์ปจํ
์ด๋์ ์ด๋ฏธ์ง๋ฅผ ํฌํจํ๋ ค๋ฉด ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ณ (์: reg
) ์ปจํ
์ด๋๊ฐ ์ฒ์ ์์๋ ๋ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํฉ๋๋ค. ์์? ๋น๋ํ๋ ๋์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋ฉด _ dind
๊ฐ ๋์ผํ ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๋ก ์์๋ ๊ฒฝ์ฐ์๋ง ์ด๋ฏธ์ง๊ฐ ์๋ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ฆ, ์ด๋ฏธ์ง๊ฐ ๋ค๋ฅธ ์ปดํจํฐ์์ ์๋ํ๊ฑฐ๋ ์๋ํ์ง ์์ ์ ์์ต๋๋ค.
๋ํ ์ด๋ฏธ์ง๊ฐ ํฐ ๊ฒฝ์ฐ(์: busybox
๋๋ alpine
์ด์ธ์ ๋ค๋ฅธ ๊ฒ) ์ ๋ง ํฐ DinD ์ด๋ฏธ์ง๋ก ๋๋ฉ๋๋ค...
๋๋ ๋น์ ์ ์ต์ข ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ๋ ์๊ณ ์ถ์ต๋๋ค. ์๋ํ๋ฉด ๊ฑฐ๋ํ DinD ์ด๋ฏธ์ง๋ฅผ ๊ตฝ๋ ๊ฒ๋ณด๋ค ๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ์ฐพ๋ ๋ฐ ์ฐ๋ฆฌ๊ฐ ๋น์ ์ ๋์ธ ์ ์๋ค๊ณ ํ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค :-)
(๊ทธ๋ ์ง ์์ผ๋ฉด @kraml ์ด ์ ์ํ ์๋ฃจ์ ์ด ์คํ๋ ค ์ฐ์ํฉ๋๋ค!)
https://github.com/moby/moby/blob/master/contrib/download-frozen-image-v2.sh ๋ ์ฐธ์กฐ
bash+curl+tar๋ง ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.
์ฌ๊ธฐ์์ ์ฌ์ฉํฉ๋๋ค: https://github.com/moby/moby/blob/master/Dockerfile#L171
@jpetazzo ์ฐ๋ฆฌ๋ ์ด๋ฏธ ๋น๋-๋ฐ-์ปค๋ฐ๊ณผ ๊ฐ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์คํํ๊ณ ์์ง๋ง, ๋ด ๊ด์ ์์๋ ์ฌ์ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์
๋๋ค. ์ฌ์ฉ ์ฌ๋ก๋ kubernetes ๋ฐ minikube ํ๊ฒฝ๊ณผ ๊ด๋ จํ์ฌ ๋งค์ฐ ๊ตฌ์ฒด์ ์ด๋ฉฐ ํ์ฌ๋ก์๋ ํ ์ ์๋ ๊ฒ์ด ์์ต๋๋ค. ์ง๊ธ์ ๋์ปค๋ฅผ ๋ฐ๋ชฌ์ผ๋ก ์ฌ์ฉํ์ฌ ๋์ปค์์ minikube๋ฅผ ์์ํ ์ ์์๊ณ virtualbox ๋๋ ๋ค๋ฅธ vm ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ํ์ง ์์ผ๋ฏ๋ก dind
์ ๊ทผ ๋ฐฉ์์ ์์กดํฉ๋๋ค.
์ค์น ํ๋ก๊ทธ๋จ์ด sysctl ๋ช ๋ น์ ์คํํ๋ ค๊ณ ์๋ํ์ง๋ง ์คํจํ ๋ ๊ฑฐ์ ์์ฉ ํ๋ก๊ทธ๋จ(๋งค์ฐ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก)์ด ํฌํจ๋ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ค๊ณ ์๋ํ๋ ์ค์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ด ์ค๋ ๋๋ก ๋์์ ๋์ปค ๋น๋ ๋ช
๋ น์ ์ผ์ข
์ ๊ถํ ์๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๋ฌธ์ ์ ๋ํด 4๋
๋์(!!!) ์๋ค๋ก ๊ฒํ ํ ๊ฒฐ๊ณผ ์ด โโ์ํฉ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ต์
์ ๋ค์ ์ค ํ๋์
๋๋ค. sysctl ํธ์ถ ๋๋ ๋ค๋จ๊ณ ๋น๋ -> ์คํ -> ์ปค๋ฐ ํ์ดํ๋ผ์ธ์ ์ ๊ฑฐํ๊ธฐ ์ํด ์ค์น ํ๋ก๊ทธ๋จ์ ์์ ํ๋ sed ๋ช
๋ น์ ๋ถ์พํ ๋ฌด๋ฆฌ. ๋๋ '๋น๋ -> ์คํ -> ์ปค๋ฐ'์ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ๋๊ปด์ง๋ค๋ @derberg์ ๋ง์ ๋์ํ๊ณ (์ด์ฒด์ /ํดํค ํด๊ฒฐ ๋ฐฉ๋ฒ) ๋ด ์ฌ์ฉ ์ฌ๋ก๊ฐ ๊ทธ๋ ๊ฒ ๋
ํนํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋ค๋ฅธ ์ค๋ ๋ ํ์ธ ๊ถํ ๋ถ์กฑ์ผ๋ก ์ธํด ์คํจํ docker build
๋ช
๋ น์ผ๋ก ๋ค์ํ ์์ฉ ํ๋ก๊ทธ๋จ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์น์ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ํ๋ ๋ง์ ์ฌ๋๋ค์ ๋ณด์์ต๋๋ค.
์ด ์์ ์์ docker run ๋ช ๋ น์ "--cap-add ๋ฐ --cap-drop์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ฅ์ ๋ํ ์ธ๋ฐํ ์ ์ด"์ ํจ๊ป ๊ด๋ฒ์ํ '๊ถํ' ์ต์ ์ ์ง์ํฉ๋๋ค. ๊ทธ๋์ ๋ณด์์ด๋ ๊ธฐ์ ์ ์ธ ์ธก๋ฉด์์ ๋ฐ๋ํ๋ ๊ฒ์ ๋ง์ด ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ถํ ์๋ ์คํ ์ต์ ์ด '--cap-add' ๋ฐ '--cap-drop'๊ณผ ํจ๊ป ์ถ๊ฐ๋๋ฉด ๋ณด์์ ๋ฏผ๊ฐํ ์์ง๋์ด๋ ๋น๋์ ํ์ํ ํน์ ๊ธฐ๋ฅ๋ง ํฌํจํ๋๋ก ๊ถํ ์๋ ๋น๋๋ฅผ ์ ํํ๋๋ก ์ ํํ ์ ์์ต๋๋ค.
์๋ ํ์ธ์ ,
๋๋ ์ด๋ฏธ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ด์ ์ ๋ณด๊ณ ํ์ต๋๋ค.
Docker๋ฅผ ํจํค์ง ๋๊ตฌ๋ก ์ฌ์ฉํ์ฌ VM๊ณผ container์์ ๋์ผํ ์ฌ์ฉ์ ID๋ก VM๋น ํ๋์ ์ปจํ ์ด๋๋ฅผ ์คํํ๋ ค๋ ์ฌ๋๋ค์ ์ด๋ป์ต๋๊น?
์ด์ ๊ด๋ จ๋ ๋ณด์ ๋ฌธ์ ๊ฐ ์ฌ์ ํ ์์ต๋๊น?
์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋น๋ ๊ธฐ๋ฅ์ ์ค์ ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ๋ง๋ฌ์ต๋๋ค.
์ฌ๋ ์ด๋ธ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ๋ CI/CD ๋น๋/ํ
์คํธ ๋๊ตฌ ์ฒด์ธ์ ์ค์นํ๊ธฐ ์ํด docker build
์ ๋ํ ๊ถํ ์๋ ๊ถํ์ด ํ์ํ ์ ์๋ CI/CD ์ฌ๋ ์ด๋ธ๋ก ๋์ปค๋ฅผ ์ฌ์ฉํ ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
์ ๋ ์ด ๊ธฐ๋ฅ์ ๋ช ๋
๋์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ผ๋ฉฐ ํฅํ ์ง์๋ ์ ์๊ธฐ๋ฅผ ์ง์ฌ์ผ๋ก ๋ฐ๋๋๋ค.
--privileged for docker image์ ๊ด๋ จํ์ฌ ๊ฐ๋ฐ์๋ค๋ก๋ถํฐ ์ ๊ทธ๋ ๊ฒ ๋ง์ ๋ฐ๋ฐ์ด ์๋์ง ์ ๋ง ์ดํด๊ฐ ๋์ง ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ์์ ์ ๋ฐ์ ์ด์ ์๊ณ ์ถ๋ค๋ฉด ํ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ๊ฒฝ๊ณ ๋ฉ์์ง๋ง ๋ฃ์ผ๋ฉด ๋์
๋๋ค. ๋์ผํ ๊ฒ์ ๋ฌ์ฑํ๊ธฐ ์ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์ด๋ฏธ ์์ต๋๋ค. ์ค์ ๋ก ํ์ํ ์ฌ์ฉ์๋ฅผ ์ํด ๋ ์ฝ๊ฒ ๋ง๋ค์ง ์๊ฒ ์ต๋๊น?
4~5๋
์ด ์ง๋ฌ์ง๋ง ์๋ฌด๋ฐ ์ง์ ์ด ์์์ต๋๋ค.
๊ทธ๋ฅ ๋๋๋ค...
์ค๋ ํ์ฌ ์ด ๊ธฐ๋ฅ์กฐ์ฐจ ์์ง ๊ตฌํ๋์ง ์์์ต๋๋ค.
์คํ --cap-add=SYS_PTRACE
๋ง์ ์ฌ์ฉ์์ ์๊ตฌ์ ๋ง๋..
Gentoo Linux ํธ์คํธ์์ ์ด Dockerfile์ ๋น๋ํ๋ ๋ฐฉ๋ฒ์ ์ ์ํด ์ฃผ์๊ฒ ์ต๋๊น?
FROM gentoo/stage3-amd64
# Download and extract latest portage
RUN wget http://distfiles.gentoo.org/snapshots/portage-latest.tar.bz2 && \
wget http://distfiles.gentoo.org/snapshots/portage-latest.tar.bz2.md5sum && \
md5sum -c portage-latest.tar.bz2.md5sum
RUN tar -xjvf portage-latest.tar.bz2 -C /usr
RUN emerge dev-lang/go
dev-lang/go๋ฅผ ์ด๋จธ์งํ ๋ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
##### Building Go bootstrap tool.
cmd/dist
* /var/tmp/portage/sys-apps/sandbox-2.12/work/sandbox-2.12/libsandbox/trace.c:_do_ptrace():75: failure (Operation not permitted):
* ISE:_do_ptrace: ptrace(PTRACE_TRACEME, ..., 0x0000000000000000, 0x0000000000000000): Operation not permitted
/usr/lib64/libsandbox.so(+0xb692)[0x7fd10e265692]
/usr/lib64/libsandbox.so(+0xb778)[0x7fd10e265778]
/usr/lib64/libsandbox.so(+0x6259)[0x7fd10e260259]
/usr/lib64/libsandbox.so(+0x6478)[0x7fd10e260478]
/usr/lib64/libsandbox.so(+0x7611)[0x7fd10e261611]
/usr/lib64/libsandbox.so(execve+0x3f)[0x7fd10e2634ff]
bash[0x41d8ff]
bash[0x41f387]
bash[0x420138]
bash[0x4219ce]
/proc/330/cmdline: bash ./make.bash
* ERROR: dev-lang/go-1.9.2::gentoo failed (compile phase):
* build failed
*
* Call stack:
* ebuild.sh, line 124: Called src_compile
* environment, line 1034: Called die
* The specific snippet of code:
* ./make.bash || die "build failed"
*
* If you need support, post the output of `emerge --info '=dev-lang/go-1.9.2::gentoo'`,
* the complete build log and the output of `emerge -pqv '=dev-lang/go-1.9.2::gentoo'`.
* The complete build log is located at '/var/tmp/portage/dev-lang/go-1.9.2/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/dev-lang/go-1.9.2/temp/environment'.
* Working directory: '/var/tmp/portage/dev-lang/go-1.9.2/work/go/src'
* S: '/var/tmp/portage/dev-lang/go-1.9.2/work/go'
--cap-add=SYS_ADMIN --device /dev/fuse
๋๋ --privileged
์์ด ์ด๋ป๊ฒ ์คํํ ์ ์์ต๋๊น?
RUN apt-get -y install unionfs-fuse
RUN unionfs-fuse -o cow dir1=RW:dir2=RO dir3/
์ง์ ์ ์ ๋ณ๋์ bash ํ์ผ๋ก ํ ์ ์์ง๋ง ๋จ์ผ Dockerfile์ด ํ์ํฉ๋๋ค.
@amd-nick ๋น๋ ์ค RUN unionfs-fuse ...
๋ผ์ธ์ ๋ํด ์ด๋ป๊ฒ ์์ํ์ญ๋๊น? ๊ทธ๊ฒ์ด ์๋ํ๋๋ผ๋ ๋จ์ผ RUN
๋์์๋ง ํ์ผ ์์คํ
์ด ๋ง์ดํธ๋๊ณ ๋ค์ ๋จ๊ณ์์ ์ฌ๋ผ์ง๋๋ค.
@thaJeztah ์ค๋ช ํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์ด repo ๋ฅผ ์์ ํ๋ ค๊ณ ํฉ๋๋ค. ๊ฑด๋ฌผ์์ ์ด ์ค์ ๊ฑด๋๋ธ ์ ์๋์?
์๋ ํ์ธ์
๋ฌด์์๋ก ๋์ปค ๋น๋๋ 0๋ถํฐ ์์ํ๋ ํธ์คํธ ์ด๋ฆ์ ์ ํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๋จํฉ๋๋ค. ๊ทธ๋ฐ ๊ฒฝ์ฐ DockerFile ๋ด์์ "ํธ์คํธ ์ด๋ฆ"์ ์คํํ๋ ค๊ณ ์๋ํ์ง๋ง ๋์ผํ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค.
๋ํ ๋์ปค ๋น๋๋ฅผ RUNP๋ก ์คํํ๊ฑฐ๋ ๋น๋ ์ค์ ํธ์คํธ ์ด๋ฆ์ ์ ํํ๋ ์ต์ ์ ๊ฐ๊ณ ์ถ์ต๋๋ค.
Kaniko๋ก ์ด๋ฌํ ์ข
๋ฅ์ ์ด๋ฏธ์ง๋ฅผ @maneamarius Mac ์ฉ ๋ถ๋ ๋
ธ๋์์์ Dockerfile๋กํ๋ค ๊ทธ๊ฒ์ ๋น์ ์ด Kaniko์ ์ ํ ํ ๋ฒ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ์ถ ํ ๊ฒ docker run
์ "๋น๋"๋ช
๋ น --cap-add=SYS_PTRACE
. ๊ทธ๋ฌ๋ ๊ฒฐ๊ณผ tarball์ ๋ก์ปฌ๋ก ๋ก๋ํ๋ ๋ฐ ์ฝ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ค๋ฒ๋ ์ด๋ฅผ ์ฌ์ฉํ ์ ์๊ณ ๋ ์ด์ด ์บ์ฑ์ด ์ฌ์ ํ WIP์ด๊ธฐ ๋๋ฌธ์ RAM ์ฌ์ฉ๋์ด ์ฝ๊ฐ ๋์ต๋๋ค. ๋ ์ง์คํธ๋ฆฌ์ ํธ์ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ์ ์์ง๋ง ์์ง ์๋ํ์ง ์์์ต๋๋ค.
docker run --cap-add=SYS_PTRACE --rm -v $(pwd):/workspace gcr.io/kaniko-project/executor:latest --dockerfile=Dockerfile --context=/workspace --tarPath=/workspace/test.tar --destination=test --single-snapshot
์ด ๊ธฐ๋ฅ์ด ์์ผ๋ฉด Puppet on Redhat/CentOS ๊ธฐ๋ณธ ์ด๋ฏธ์ง๋ฅผ ํตํด Docker ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ๊ฒ์ํ ์ดํ๋ก Kaniko ์ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธ RUN
๋ฐ๋ณต ์ ์ฅ ๋ฐ ์คํ ์์
์ด ์์ง๋ง alpine
, ubuntu
๋ฐ ์ธ๊ธฐ ์๋ ๋ฒ ์ด์ค๊ฐ ๋ฌด์์ด๋ ).
๋ด๊ฐ์ @maneamarius์ ๊ตฌ์ถ ์ฑ๊ณตํ์ต๋๋ค ๊ณณ์ ์ํ์์์ ์ ํฌ ์ด๋ฏธ์ง์ Golang ๋์จ๋ค Dockerfile ์ Dockerfile ๋๋ ์๋ฅด๊ณ ๊ทธ๊ฒ์ ์ด๋ค ์ ์ผ๋ก๋ (EDIT @maneamarius๋ฅผ ์์ ํ์ง ์๊ณ ์ด ํ๋ก์ ํธ / ๋ฐ๋ชจ๋ฅผ '๋๋ ์ดํํ์ต๋๋ค ์ ํฌ ๊ธฐ๋ณธ ์ด๋ฏธ์ง๋ฅผ ์ด ํฌ์คํธ ๋น์ latest
์๋ ๋ฒ์ ์ผ๋ก ๊ณ ์ ํ๊ธฐ ์ํด Dockerfile
๋ฅผ ์์ ํด์ผ ํ์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ์ ํ ์์ ๋์ง ์์ ์ํ์
๋๋ค. ) :
https://github.com/nelsonjchen/kaniko-privileged-maneamarius-moby-1916
๋ํ --cap-add=SYS_PTRACE
๋ฅผ ์ฌ์ฉํ์ฌ Kaniko๋ฅผ ์ฌ์ฉํ์ฌ Dockerfile์ ์ด๋ฏธ์ง๋ก ๋น๋ํ๊ณ Kaniko์ ์ถ๋ ฅ tarball์ ๋ก๋ํ๊ณ ์์ฑ๋ ์ด๋ฏธ์ง์์ go version
๋ฅผ ์คํํ๋๋ก Azure Pipelines๋ฅผ ๊ตฌ์ฑํ์ต๋๋ค. ๋ํํ "์๋ช
์ฆ๋ช
"์ด ์ฌ๋ฏธ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ์ฌ๊ธฐ์ ์๋ ์ด์ ์๊ฒฌ ์ค ์ผ๋ถ๋ CI ์์คํ
์ ๋ํด์๋ ์ฐ๋ คํ๊ธฐ ๋๋ฌธ์ ๊ณต๊ฐ CI ์์คํ
๋ ์๋ํ๋๋ก ๊ตฌ์ฑํด์ผ ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. BTW, Travis CI๊ฐ ๊ณ ๋ ค๋์์ง๋ง ๋น๋ ์ถ๋ ฅ์ด ๋๋ฌด ๊ธธ์ด ์ข
๋ฃ๋์๊ณ Azure๋ 166k ๋ผ์ธ์ ์ถ๋ ฅ์ ์๋ฒฝํ๊ฒ ๋ง์กฑํฉ๋๋ค. Dockerfile์ด ์ฝ 70,000์ค์ ์ถ๋ ฅ์ผ๋ก ๋น๋๋์๋ค๋ฉด Travis CI์์ ์ฑ๊ณตํ์ ๊ฒ์
๋๋ค. Azure Pipeline ๋น๋ ์ถ๋ ฅ์ ๋ํ ๋งํฌ๋ README ์๋จ์ ์์ต๋๋ค.
๋น๋ค ๋ฃจํฌ ์ฌ์ฉ
์ด์ ์ด ๊ธฐ๋ฅ์ docker buildx build --allow security.insecure
๋ก ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ด ๋ฌธ์ ๋ฅผ ์ข
๋ฃํฉ๋๋ค.
https://github.com/docker/buildx/blob/master/README.md# --allowentitlement
https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/experimental.md#run ---securityinsecuresandbox
@AkihiroSuda buildx
๋ฅผ) ์๋ํ๊ธฐ ์ํด ๋์ปค๋ฅผ ๋ฒ์ 19.03์ผ๋ก ์
๋ฐ์ดํธํ์ต๋๋ค. ์ธ๊ธ ํ ๋ช
๋ น์ ์๋ํ์ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
$ docker buildx build --allow security.insecure -t sample-petclinic -f Dockerfile .
[+] Building 0.0s (0/0)
failed to solve: rpc error: code = Unknown desc = entitlement security.insecure is not allowed
Docker version
:
Client: Docker Engine - Enterprise
Version: 19.03.2
API version: 1.40
Go version: go1.12.8
Git commit: c92ab06
Built: Tue Sep 3 15:57:09 2019
OS/Arch: linux/amd64
Experimental: true
Server: Docker Engine - Enterprise
Engine:
Version: 19.03.2
API version: 1.40 (minimum version 1.12)
Go version: go1.12.8
Git commit: c92ab06
Built: Tue Sep 3 15:55:37 2019
OS/Arch: linux/amd64
Experimental: true
containerd:
Version: 1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
buildx ๋ฌธ์: For entitlements to be enabled, the buildkitd daemon also needs to allow them with --allow-insecure-entitlement
@AkihiroSuda ๊ฐ์ฌ
๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด.
ํ
์คํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ibmdb2 ์ปจํ
์ด๋์ dockerfile ๋น๋๋ฅผ ์์ ํ๋ ค๊ณ ํฉ๋๋ค.
IBM์ ํ๋ธ์์ v10 ์ด๋ฏธ์ง๋ฅผ ์ ๊ฑฐํ์ต๋๋ค. ๊ทธ๋ฌ๋ v11 DB ์ด๋ฏธ์ง๋ --privileged๋ก๋ง ์์๋ฉ๋๋ค.
๋ฐ๋ผ์ Dockerfile์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์ ํ๋ ๋ชจ๋ ์ฝ๋๋ ์ด์ db2๊ฐ ๊ถํ ์์ด ์์๋์ง ์๊ธฐ ๋๋ฌธ์ ์๋ํ์ง ์์ต๋๋ค. :(
docker run ๋ฐ docker commit์ ์ฌ์ฉํ๋ ๋ณต์กํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์์ฐ์ ์ธ ๋น๋ ํ์ดํ๋ผ์ธ์์ ์ด๊ฒ์ ๋ง์ ์ถ๊ฐ ๋ณต์ก์ฑ์ ์์ฑํฉ๋๋ค.
๋ด๊ฐ ์ข์ํ๋ ๋ฌผ์ด ๋ด์ผ https://github.com/maneamarius ์ https://github.com/moby/moby/issues/1916#issuecomment -361173550
์ด๊ฒ์ ์ง์ํ๋ ๊ฒ์ด ์ ๊ทธ๋ ๊ฒ ํฐ ๋ฌธ์ ์ ๋๊น? ๋น๋๋ ํ๋ ์๋์์ ์คํ์ ์คํํฉ๋๋ค.
์ด ํน์ ์ฌ์ฉ ์ฌ๋ก์์ ๊ถํ ์๋ ๋น๋ ์ต์ ์ ์ผ์ข ์ "์ด์ ๋ฒ์ ํธํ์ฑ"์ ์ง์ํ๋ฉฐ ์น ์กฐ์ฌ ํ ์ด ๋ฌธ์ ๋ฅผ ๊ฒช์ ์ฌ๋์ด ๋ ํผ์๊ฐ ์๋๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
@uvwild ์ด๊ฒ์ด ๊ทํ์ ์ฌ์ฉ ์ฌ๋ก์ ๋์์ด ๋๋์ง ํ์คํ์ง ์์ง๋ง kaniko ๋ก ๋น๋๋ฅผ ์๋ํด ๋ณผ ์ ์์ต๋๋ค. ์ด๋ฏธ์ง๋ ๋์ปค ๋ฐ๋ชฌ ์์ด ๋น๋๋๋ฉฐ ์๋ฃ๋๊ณ kaniko๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ปจํ
์ด๋๋ฅผ ์คํํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ --privileged
๋๋ --cap-add <capability which is needed>
์ฌ์ฉํ ์ ์์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ๋น์ ์ด ๊ธฐ๋ํ๋ ์์ ํ ์๋ฃจ์ ์ด ์๋๋ผ ๋น์ ์ ๋น๋ ํ์ดํ๋ผ์ธ์ ๋ง์ ์ ์๋ ๋ ์ฌ์ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ผ๋ ๊ฒ์ ์ธ์ ํฉ๋๋ค.
ํธ์ง: @alexey-vostrikov๊ฐ ๋งํ๋ฏ์ด buildah
๋ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๋ฐ --privileged
๊ฐ ํ์ํ ์ฌ์ฉ ์ฌ๋ก์ ๋ ์ ํฉํ ์๋ฃจ์
์ด ๋ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
--privileged for docker image์ ๊ด๋ จํ์ฌ ๊ฐ๋ฐ์๋ค๋ก๋ถํฐ ์ ๊ทธ๋ ๊ฒ ๋ง์ ๋ฐ๋ฐ์ด ์๋์ง ์ ๋ง ์ดํด๊ฐ ๋์ง ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ์์ ์ ๋ฐ์ ์ด์ ์๊ณ ์ถ๋ค๋ฉด ํ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ฒฝ๊ณ ๋ฉ์์ง๋ง ๋ฃ์ผ๋ฉด ๋์ ๋๋ค. ๋์ผํ ๊ฒ์ ๋ฌ์ฑํ๊ธฐ ์ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์ด๋ฏธ ์์ต๋๋ค. ์ค์ ๋ก ํ์ํ ์ฌ์ฉ์๋ฅผ ์ํด ๋ ์ฝ๊ฒ ๋ง๋ค์ง ์๊ฒ ์ต๋๊น?
4~5๋ ์ด ์ง๋ฌ์ง๋ง ์๋ฌด๋ฐ ์ง์ ์ด ์์์ต๋๋ค.
๊ทธ๋ฅ ๋๋๋ค...