내 테스트 환경에서 Docker 내에서 chromedriver + chrome을 실행하고 있습니다.
최신 CoreOS 업그레이드까지 모든 것이 잘 작동했습니다.
다음은 작동하는 것으로 보이는 버전입니다.
VERSION=1185.5.0
VERSION_ID=1185.5.0
BUILD_ID=2016-12-07-0937
그리고 이것은 크롬이 코어 덤프를 일으키는 최신 버전입니다.
VERSION=1235.4.0
VERSION_ID=1235.4.0
BUILD_ID=2017-01-04-0450
변경 사항을 살펴보면도 커가 1.11.x에서 1.12.x로 업그레이드 setns()
되어 컨테이너 내부의 호출 이 끊어졌습니다 . setns()
Chrome에서 네임 스페이스를 만드는 데 사용됩니다.
다음은 예제 출력입니다.
jsosic-coreos-test-20161207 ~ # docker --version
Docker version 1.11.2, build bac3bae
이 상자의 한 컨테이너 내부에서 :
[root@2939f21ecfaa /]# /opt/google/chrome/google-chrome
[57:57:0107/015130:ERROR:browser_main_loop.cc(261)] Gtk: cannot open display:
이것은 새로운 버전이 그것을 깨뜨린 방법입니다.
jsosic-coreos-test-2017-01-04 ~ # docker --version
Docker version 1.12.3, build 34a2ead
[root@13ab34c36c82 /]# /opt/google/chrome/chrome
Failed to move to new namespace: PID namespaces supported,
Network namespace supported,
but failed: errno = Operation not permitted
Aborted (core dumped)
내가 찾은 것은 --cap-add=SYS_ADMIN
또는 컨테이너를 시작하면 --privileged
Chrome이 예상대로 작동 한다는 것입니다 .
이 두 스위치의 차이점은 무엇입니까? 어떤 기능을 사용할 수 --privileged
있습니까?
setns()
보안을 손상시키지 않고 컨테이너 내부를 허용 할 수 있습니까?