Image Docker XWINDOW berbahasa Korea yang dapat diakses lewat RDP Windows
(github.com/lancard)Saya membuat dan merilis image Docker XWINDOW (Wayland) berbahasa Korea berbasis Debian 13 (Trixie) terbaru.
Masih banyak orang yang benar-benar menggunakan Windows, dan kadang ada saatnya Anda ingin menjalankan Linux X Window berbahasa Korea lewat Docker untuk bekerja.
Jadi!
Saya mencoba membuat lingkungan GUI berbahasa Korea berbasis Debian yang bisa diakses melalui Remote Desktop Windows.
Image ini sudah menyertakan alat-alat utama yang diperlukan untuk lingkungan pengembangan seperti Visual Studio Code, Chromium, Vim, Git, Node.js + npm, sehingga bisa langsung digunakan sebagai lingkungan pengembangan. (Karena itu ukurannya agak besar)
Fitur utamanya antara lain,
- Mendukung koneksi Remote Desktop Windows (RDP)
- Data dan volume tetap tersimpan: jika
/home/(nama pengguna)dihubungkan ke volume Docker, data dapat dipertahankan
Hal yang perlu diperhatikan,
Karena dijalankan di Docker, VSCode dan Chromium tidak menggunakan mode sandbox. Mohon perhatikan aspek keamanannya, dan fitur suara dikecualikan karena terlalu banyak benturan dan bug. Menurut saya, kebanyakan orang kemungkinan mendengarkan musik di PC Windows mereka, jadi fitur itu saya hilangkan.
Ini adalah image yang sangat berguna terutama bagi pengguna berbahasa Korea yang ingin menyiapkan lingkungan pengembangan dengan cepat.
Sumbernya ada di https://github.com/lancard/x11-korean, jadi silakan lihat. Jika ada fitur yang Anda butuhkan, kapan saja kirim issue atau PR!
25 komentar
Di dalam
vscode, membuat file baru bisa, tetapi file yang sudah ada tidak bisa diedit. Bahkan setelah mengubah file yang sudah ada denganchmod 777. Sepertinya ini masalah izin atau kepemilikan grup, jadi saya akan coba beberapa hal lagi.Sepertinya ini berhasil diatasi dengan memodifikasi file
shdi entry point dan menyesuaikanXWINDOW_USER_IDdengan ID folder kerja.bagian tersebut diubah menjadi
lalu saya mengisi
USER_IDagar sama dengan ID akun di mesin host.Apakah ini bisa dipakai sebagai pengganti WSL?
Ya, bisa digunakan. Saya pribadi kurang suka WSL / WSL2, jadi saya memasang Docker di Hyper-V dan sedang memakai ini.
Bolehkah saya dengan hati-hati menanyakan alasan Anda tidak menyukainya?
Saya tidak suka ketika dua OS bercampur. Saya juga tidak tahu efek samping apa yang mungkin muncul. Saya pikir masing-masing OS harus berada dalam sandbox atau hanya menempati satu server fisik. Selain itu, saya juga pernah mengalami perilaku aneh pada WSL di masa lalu.
Karena berdasarkan pengetahuan yang saya miliki, saya kurang memahami maksud yang Anda sampaikan, jadi mungkin
bukankah ini mirip dengan struktur logika dasar WSL atau Docker?
Apakah ada bagian yang saya pahami secara keliru?
Memang bisa dibilang WSL2 agak mirip, tetapi struktur WSL sedikit berbeda. Pada dasarnya, ia berjalan di atas kernel Windows. Memang benar WSL2 berjalan di atas hypervisor, tetapi menurut saya tingkat isolasinya agak berbeda. Karena melakukan auto-mount dua arah, kedua OS bisa mengakses filesystem satu sama lain. Akibatnya, bisa muncul hasil yang tidak diinginkan. Misalnya, Windows otomatis membuat
$RECYCLE.BINdi ext4, atau jika salah satu OS dikuasai peretas, keduanya bisa terkena dampak fatal. Yang saya buat, kalau mau, tidak perlu me-mount apa pun. Bisa dijalankan sendiri tanpa terhubung ke Windows.Selain itu, mungkin juga ada pengaruh pada kecepatan instalasi... kalau pakai cara image saya, kalau tidak suka tinggal hapus image Docker lalu salin yang baru lagi. Saat update juga tinggal ambil image-nya saja. Saya juga ingat sisi jaringan WSL2 sempat ada beberapa masalah. Selain itu, kernel Linux-nya juga bukan kernel Linux murni, setahu saya itu versi yang dikustomisasi oleh MS.
Karena saya mengarah ke Linux murni (maksudnya ingin keduanya saling terisolasi), itu agak kurang cocok dengan saya.
Saya memang hanya memaparkan kekurangannya, tetapi pada akhirnya ini juga soal selera pribadi, jadi silakan pilih yang sesuai dengan kebutuhan Anda.
Saya baru memeriksanya agak terlambat.
Terima kasih atas jawaban yang sangat penuh perhatian!
Dan karena Docker sendiri pada dasarnya juga hampir hanya untuk Linux, serta ada banyak keuntungan dari menggunakan Docker seperti menjalankan Docker di atas NAS atau perbedaan huruf besar/kecil, jadi bisa dibilang itulah alasan dibuatnya ini.
Untuk mode privileged, telah diperbarui agar berjalan di sandbox. Dalam mode privileged, resource lokal (drive C, dll.) dapat dihubungkan. Koneksi tersebut akan di-mount ke
$HOME/thinclient_drives.Jika ingin menghubungkan resource lokal (C:, D:, dan sebagainya), jalankan dalam mode privileged. (Dengan begitu, salin file via CTRL + C / V akan berfungsi)
Ohooook.. sepertinya VS Code tidak bisa dijalankan ya :)
Saya jawab sendiri karena tidak ada respons; setelah mencoba ini-itu, ternyata bisa dibuka kalau dijalankan dengan
code --no-sandboxdi terminal.Hmm? Mungkin yang ada di desktop tidak terbuka?
Ah iya, ternyata tidak bisa. Entah saya salah di bagian mana..
Karena saya terus mengubah image, mungkin ini bisa dianggap sebagai image peralihan.
Pertama, coba pastikan ikon vscode di desktop menggunakan perintah
/usr/bin/code %F,lalu buka file
/usr/bin/codedan periksa apakah baris kedua dari bawah adalahELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" --no-sandbox --disable-gpu "$@".
Saya orang yang baru-baru ini belajar Docker. Saya mencoba memeriksa kerentanan image ini dengan
trivy, dan hasilnya muncul 1053 kerentanan. Sepertinya tidak semuanya penting, dan rasanya seperti semua hal terdeteksi begitu saja, tetapi secara praktis apakah Anda bisa memberi saran tentang bagaimana memeriksa dan mencapai keamanan image di lingkungan kerja nyata?Sebenarnya, ada terlalu banyak cara untuk menghilangkan kerentanan sehingga tidak ada jawaban yang pasti.
Dalam kasus saya, saya menggunakan versi terbaru yang sudah sestabil mungkin, dan saat menggunakan GitHub Actions saya mengaktifkan security bot semaksimal mungkin. Sebenarnya, seperti yang bisa Anda lihat, image xwindow kali ini tidak memiliki bagian yang diprogram, jadi kemungkinan hanya ada kerentanan dasar bawaan dari program-program yang terpasang itu sendiri.
Saya penasaran kenapa fakta bahwa mode sandbox tidak diterapkan menjadi catatan keamanan yang perlu diperhatikan.
Apakah ini berarti Docker tidak menyediakan fungsi sandbox untuk proses internal? Jadi mau tidak mau harus dijalankan sebagai root, dan meskipun lingkungannya terisolasi dengan Docker, tetap ada risiko malware bisa menyusup ke volume yang dipetakan ke host? Atau maksudnya file yang dibuat pengguna di dalam filesystem Docker mungkin tidak aman?
Setahu saya, baik di Windows maupun Linux, Chrome berjalan dalam mode sandbox. Jadi... meskipun seseorang membuat exploit lewat JavaScript dan semacamnya untuk menyerang kerentanan, itu tidak akan memengaruhi OS yang sebenarnya.
Namun, dalam mode container, kemungkinan fitur itu hanya bisa diaktifkan jika mode
privilegeddinyalakan.Tentu saja bisa saja diberikan panduan untuk menyalakan mode tersebut, tetapi saya menganggap container itu sendiri sudah merupakan sandbox. Mungkin rasanya seperti Windows yang bisa dinyalakan dan dimatikan dengan mudah...
Karena itulah Chromium dan VS Code berbasis Electron dibuat berjalan dalam mode non-sandbox.
Artinya, jika memang ada kerentanan di Chromium dan VS Code, dan penyerang bisa memanfaatkannya untuk membuat exploit, maka hal itu bisa berbahaya.
Nama Docker-nya adalah lancard/xwindow-korean.
Karena menggunakan Wayland, nama repo diubah menjadi https://github.com/lancard/xwindow-korean ~
Karena Ubuntu termasuk keluarga Debian, Anda juga bisa menggunakan
aptdan semacamnya dengan nyaman. Menurut saya, Debian ternyata lebih baik daripada image dasar Ubuntu.