خب در این قسمت میخواین با استفاده از کانتینر Ubuntu یک کانتینر ایزوله برای مرورگر کروم ایجاد کنیم. در قدم اول باید داکر بدونین. بقیه قدم ها اینقدر مهم نیست پس میشه پرید :)
قبل از شروع بد نیست بگم اگه با گرفتن پکیج ها از dockerhub مشکل دارین:
docker_vm# echo "nameserver 185.51.200.2" >> /etc/resolv.conf docker_vm# echo '{ "registry-mirrors": ["https://registry.docker.ir"] }' >> /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 "tzdata tzdata/Areas select Asia" > ~/tx.txt && \
echo "tzdata tzdata/Zones/Asia select Tehran" >> ~/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 "set border 1" > ~/.ratpoisonrc && \
echo "exec google-chrome --no-sandbox">> ~/.ratpoisonrc && \
openssl req -x509 -nodes -newkey rsa:2048 -keyout ~/novnc.pem -out ~/novnc.pem -days 3650 -subj "/C=US/ST=NY/L=NY/O=NY/OU=NY/CN=NY emailAddress=test@foad.local"
EXPOSE 80
CMD /opt/TurboVNC/bin/vncserver && websockify -D --web=/usr/share/novnc/ --cert=~/novnc.pem 80 localhost:5901 && tail -f /dev/null
در قدم بعد سراغ 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 نیز در همین دایرکتوری قرار گرفته است که میتونین تغییر بدین