مهدی مزرعه ملایی
مهدی مزرعه ملایی
خواندن ۲ دقیقه·۳ سال پیش

ایزوله کردن مرورگر با داکر

Isolate browser with Docker Container
Isolate browser with Docker Container

خب در این قسمت میخواین با استفاده از کانتینر Ubuntu یک کانتینر ایزوله برای مرورگر کروم ایجاد کنیم. در قدم اول باید داکر بدونین. بقیه قدم ها اینقدر مهم نیست پس میشه پرید :)

قبل از شروع بد نیست بگم اگه با گرفتن پکیج ها از dockerhub مشکل دارین:

docker_vm# echo &quotnameserver 185.51.200.2&quot >> /etc/resolv.conf docker_vm# echo '{ &quotregistry-mirrors&quot: [&quothttps://registry.docker.ir&quot] }' >> /etc/docker/daemon.json docker_vm# systemctl daemon-reload docker_vm# systemctl restart docker

به ی کانتینر اوبونتو 18.04 نیاز داریم

docker_vm# docker pull ubuntu:18.04

یک داکر فایل با محتوای زیر ایجاد میکنیم:

FROM ubuntu:18.04
ENV USER=root
ENV PASSWORD=fo@d_mol@ee
ENV DEBIAN_FRONTEND=noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN=true
RUN apt-get update && \
echo &quottzdata tzdata/Areas select Asia&quot > ~/tx.txt && \
echo &quottzdata tzdata/Zones/Asia select Tehran&quot >> ~/tx.txt && \
debconf-set-selections ~/tx.txt && \
apt-get install -y abiword gnupg apt-transport-https wget software-properties-common ratpoison novnc websockify libxv1 libglu1-mesa xauth x11-utils xorg tightvncserver && \
wget https://sourceforge.net/projects/virtualgl/files/2.6.3/virtualgl_2.6.3_amd64.deb && \
wget https://sourceforge.net/projects/turbovnc/files/2.2.4/turbovnc_2.2.4_amd64.deb && \
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \
apt install -y ./google-chrome-stable_current_amd64.deb && \
dpkg -i virtualgl_*.deb && \
dpkg -i turbovnc_*.deb && \
mkdir ~/.vnc/ && \
mkdir ~/.dosbox && \
echo $PASSWORD | vncpasswd -f > ~/.vnc/passwd && \
chmod 0600 ~/.vnc/passwd && \
echo &quotset border 1&quot > ~/.ratpoisonrc && \
echo &quotexec google-chrome --no-sandbox&quot>> ~/.ratpoisonrc && \
openssl req -x509 -nodes -newkey rsa:2048 -keyout ~/novnc.pem -out ~/novnc.pem -days 3650 -subj &quot/C=US/ST=NY/L=NY/O=NY/OU=NY/CN=NY emailAddress=test@foad.local&quot
EXPOSE 80
CMD /opt/TurboVNC/bin/vncserver && websockify -D --web=/usr/share/novnc/ --cert=~/novnc.pem 80 localhost:5901 && tail -f /dev/null
Dockerfile
Dockerfile

در قدم بعد سراغ build کردن کانتینر خود مینمائیم:

docker_vm# docker build . -t chrome

در نهایت هم یک پورت دلخواه به کانتینرمون میدیم و اجراش میکنیم برای اتصال:

docker_vm# docker run -itd -p 8080:80 chrome

خب الان اگر آیپی سرورتون رو با پورت 8080 توی مرورگر بزنین یچیزایی شبیه تصویر زیر باید داشته باشین:

اگر vnc.html کلیک کنین صفحه لاگین vnc براتون نمایش داده میشه.

دیگه چه مَلَقی میشه توش زد؟

بریم تو shell این کانتینر ببینیم په خبره:

docker_vm# docker exec -it e7581edd58e9 /bin/bash

اگر وارد مسیر /usr/share/novnc/ بشیم و اسم فایل vnc.html رو به index.html تغییر بدیم ، وقتی آیپی و پورت رو میدیم مستقیم وارد vnc میشین

فایلهای مربوط به view vnc نیز در همین دایرکتوری قرار گرفته است که میتونین تغییر بدین


داکرdockerlinuxلینوکسcontainer
شاید از این پست‌ها خوشتان بیاید