Lingkungan Hidup
- MacOS Sierra 10.12.6
- Docker versi 17.09.0-ce, bangun afdb6d4
- Ubuntu 16.04
- XQuartz 2.7.9
Saya ingin membuka browser Chromium dari wadah buruh pelabuhan ke desktop Mac saya.
docker run -i -t ubuntu:16.04 /bin/bash
apt-get update
apt-get install alsa-base chromium-browser xauth
adduser myuser
Melakukan
docker commit 2862a7bfcc2f acme/mycontainer:0.1
Menjalankan peramban kromium myuser
dari wadah FAIL
docker run --user myuser -i -t acme/mycontainer:0.1 /usr/bin/chromium-browser
Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted
Saya yakin ada sedikit lebih dari itu
Ada petunjuk?
UDPATE - menggunakan --privileged
Menghapus kesalahan Lihat utas pada serverfault tetapi UI tidak muncul
docker run \
--privileged \
--user mysuer \
-i -t acme/mycontainer:0.1 /usr/bin/chromium-browser
dan yang satu ini
docker run \
--privileged \
--net host \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=$DISPLAY \
-e XAUTHORITY=/.Xauthority \
-v ~/.Xauthority:/.Xauthority:ro \
--name chromium \
--user mysuser \
-i -t acme/mycontainer:0.1 /usr/bin/chromium-browser
Chromium tidak muncul
UPDATE 20171011
docker run \
--privileged \
--net host \
-v /tmp/.X11-unix \
-e DISPLAY \
--name chromium \
--user myuser \
-i -t acme/mycontainer:0.1 \
bash
Mulai Gtk: cannot open display: [...] org.macosforge.xquartz:0
kesalahan Chromium
$ chromium-browser --verbose
[37:37:1011/154632.348303:VERBOSE1:breakpad_linux.cc(1978)] Breakpad disabled
[1:1:1011/154632.378280:VERBOSE1:zygote_main_linux.cc(537)] ZygoteMain: initializing 0 fork delegates
[1:1:1011/154632.378653:INFO:cpu_info.cc(50)] Available number of cores: 4
[37:37:1011/154632.381303:WARNING:browser_main_loop.cc(275)] Gtk: cannot open display: \
/private/tmp/com.apple.launchd.Y2wR3QWw57/org.macosforge.xquartz:0
Di Mac saya diedit sshd_config
sudo vim /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
XAuthLocation /opt/X11/bin/xauth
Di Mac saya DISPLAY
$ env | grep DISPLAY
DISPLAY=/private/tmp/com.apple.launchd.Y2wR3QWw57/org.macosforge.xquartz:0
Pada disk
ls -al /private/tmp/com.apple.launchd.gCYQToI4lb/*
srw-rw-rw- 1 joel wheel 0B Oct 11 17:50
/private/tmp/com.apple.launchd.gCYQToI4lb/org.macosforge.xquartz:0=
Jawaban:
Kebutuhan Anda mengingatkan saya pada subuser . Ini telah dirancang untuk menjalankan aplikasi pengguna akhir dalam wadah buruh pelabuhan untuk melindungi privasi dan meningkatkan keamanan.
sumber
subuser
mungkin "Qubes OS lite" yang saya cari! Terima kasih!Saya tidak punya Mac untuk bereksperimen, tetapi berikut beberapa saran umum:
X11 biasanya dilindungi dengan file kunci yang hanya dapat dibaca oleh pengguna yang memiliki tampilan, sehingga menggunakan izin filesystem untuk menyatakan bahwa hanya program lain yang dapat membaca file yang dapat terhubung. Klien membaca file itu dan kemudian mengulangi isinya ke server melalui soket. Jadi, saya pikir Anda berada di jalur yang benar
Selanjutnya, Anda menunjukkan pengaturan penerusan SSH X11 tetapi tidak ada indikasi bahwa Anda ssh ke wadah buruh pelabuhan. Penerusan SSH biasanya digunakan oleh:
Untuk melakukan ini, Anda harus menjalankan server SSH di dalam wadah buruh pelabuhan, yang merupakan sedikit usaha ...
Selanjutnya, Anda menunjukkan sesuatu
DISPLAY=/path/to/socket
yang belum pernah saya gunakan sebelumnya. Jika ini adalah penemuan MacOS, maka Ubuntu mungkin tidak memahami format itu.Terakhir, Anda dapat melihat apa yang sebenarnya coba dilakukan krom menggunakan perintah 'strace' dari dalam wadah buruh pelabuhan.
Itu mungkin membantu Anda mempersempit operasi tertentu yang gagal tepat sebelum menyerah.
sumber