###### tags: `nas` # Docker web terminal 安裝教程 建立/tmp目錄,並進入 ``` mkdir /tmp/docker && cd /tmp/docker ``` 建立Dockerfile ``` vim Dockerfile ``` 貼上內容 ```dockerfile= FROM alpine:3.13.5 # Whenever possible, install tools using the distro package manager RUN apk add --no-cache tini ttyd socat nginx unzip openssl openssh ca-certificates && \ # Do some configuration for nginx echo "daemon off;" >> /etc/nginx/nginx.conf && \ mkdir /run/nginx && \ echo "server { listen 80 default_server; root /var/www/localhost/htdocs; location / { try_files \$uri /index.html; } }" > /etc/nginx/conf.d/default.conf && \ echo "<html><head><title>Welcome to Nginx</title></head><body><h1>Nginx works!</h1></body></html>" > /var/www/localhost/htdocs/index.html && \ chown -R 0:82 /var/www/localhost/htdocs && \ # Configure a nice terminal echo "export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '" >> /etc/profile && \ # Fake poweroff (stops the container from the inside by sending SIGTERM to PID 1) echo "alias poweroff='kill 1'" >> /etc/profile ENV TINI_KILL_PROCESS_GROUP=1 EXPOSE 7681 80 ENTRYPOINT ["/sbin/tini", "--"] CMD [ "ttyd", "/usr/bin/ssh", "root@172.17.0.1"] ``` 編譯成鏡像 ``` docker build /tmp/docker -t ttyd2 ``` 建立並執行容器 ``` docker run -d --name ttyd2 -p 8022:7681 ttyd2 ``` ## Nginx 反代設定 ``` location /ttyd { proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 1d; # dont kill connection after 60s of inactivity proxy_pass http://172.17.0.6:7681/; } ```