메뉴 건너뛰기

SayClub.org

도커(Docker)

도커(Docker)로 Guacamole 설치하기

미르다테 2025.06.12 12:56 조회 수 : 22

<docker-compose.yml>

 

services:
  guacamole-db:
    image: mariadb:latest
    container_name: guac-db
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: root
      MARIADB_DATABASE: guacamole_db
      MARIADB_USER: guacamole_user
      MARIADB_PASSWORD: guacamole_password
    volumes:
      - ./initdb:/docker-entrypoint-initdb.d  # 초기 SQL 자동 실행
      - ./db:/var/lib/mysql

 

  guacd:
    image: guacamole/guacd
    container_name: guacd
    restart: always

 

  guacamole:
    image: guacamole/guacamole
    container_name: guacamole
    restart: always
    depends_on:
      - guacd
      - guacamole-db
    environment:
      GUACD_HOSTNAME: guacd
      MYSQL_HOSTNAME: guacamole-db
      MYSQL_DATABASE: guacamole_db
      MYSQL_USER: guacamole_user
      MYSQL_PASSWORD: guacamole_password
    ports:
      - "8080:8080"  # 웹 UI 접근 포트
    volumes:
      - ./custom-config/server.xml:/usr/local/tomcat/conf/server.xml

 

  nginx:
    image: nginx:latest
    container_name: guac-nginx
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - guacamole
 

$ mkdir -p initdb

 

initdb 디렉토리 내 첨부된 2개 파일(001-create-schema.sql, 002-create-admin.sql) 넣고 docker compose up -d 실행

 

접속 정보 : admin // admin1234

 

$ mkdir custom-config

$ touch server.xml

 

<server.xml>

 

<Server port="8005" shutdown="SHUTDOWN">
  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">
      <Valve className="org.apache.catalina.valves.RemoteIpValve"
             remoteIpHeader="x-forwarded-for"
             remoteIpProxiesHeader="x-forwarded-by"
             protocolHeader="x-forwarded-proto" />
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true" />
    </Engine>
  </Service>
</Server>
 

<nginx.conf>

 

server {
    listen 80;
    server_name localhost;

    location / {
        # 헤더 전달 설정
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 추가 헤더 전달
        proxy_pass_header Authorization;
        proxy_pass_header Server;

        # 리버스 프록시 대상 (Docker 서비스명으로 연결)
        proxy_pass http://IP:8080/guacamole/;

        # 프록시 동작 세부 설정
        proxy_buffering off;
        proxy_redirect off;
        proxy_max_temp_file_size 0;
        client_max_body_size 0;

        proxy_read_timeout 1800;
        proxy_connect_timeout 1800;
        proxy_send_timeout 1800;

        proxy_request_buffering off;
    }
}
 

아래는 참고사항

 

# guacamole 컨테이너에서 SQL 스크립트 복사 및 DB 초기 스키마 생성
docker cp guacamole:/opt/guacamole/mysql/schema /home/guacamole/schema
docker exec -i guac-db mariadb -u root -proot guacamole_db < /home/mirdate/guacamole/001-create-schema.sql
 

# 접속URL http://IP:8080/guacamole/#/ 인것을 nginx로 재전달하여 http://IP:80 으로 접속하게 끔 하는 방법

# 접속 클라이언트 IP가 Log에 남지 않고 docker 컨테이터의 ip가 Log에 기록되기 때문에

    custom-config/server.xml로 guacamole 내 tomcat에 파일 교체 연결처리

번호 제목 글쓴이 날짜 조회 수
» 도커(Docker)로 Guacamole 설치하기 file 미르다테 2025.06.12 22
50 도커(Docker)로 Drupal CMS 설치하기 미르다테 2025.05.23 34
49 도커(Docker)로 Arachni UI Web(웹스캐너) 설치하기 미르다테 2025.05.14 18
48 도커(Docker)로 diun(Docker Image Update Notifier) 구축하기 미르다테 2025.04.18 46
47 도커(Docker)로 Minio 설치하기 미르다테 2025.04.17 23
46 도커(Docker)로 Rocky Linux 9.5에 Squid Proxy 설치하기 미르다테 2025.04.15 27
45 도커(Docker)로 Zabbix 서버 구축하기 미르다테 2025.04.15 24
44 vaultwarden 버전 확인하기 미르다테 2025.02.10 28
43 Docker-compose up -d 시 실행 오류 해결 방법 미르다테 2024.12.30 41
42 Squid를 Docker 컨테이너로 실행하는 방법 미르다테 2024.12.30 31
41 도커(Docker)로 컨테이너 Log 확인툴(Dozzle) 설치하기 미르다테 2024.12.30 31
40 도커(Docker)로 It-Tools 설치하기 미르다테 2024.12.30 22
39 도커(Docker) YAML 문법 검사 사이트 미르다테 2024.12.30 23
38 도커(Docker)로 Stirling-PDF 서버 설치하기 미르다테 2024.12.30 45
37 도커(Docker)로 이윰빌더(Eyoom)+그누보드 설치하기(한국형 게시판 커뮤니티) file 미르다테 2024.12.30 32
36 도커 컨테이너 내의 파일 가져오기, 로컬 파일 도커 컨테이너로 파일 넣기 미르다테 2024.12.30 26
35 Docker 네트워크 사용법 미르다테 2024.12.30 21
34 도커(Docker)로 FileRun 서버 설치하기 미르다테 2024.12.30 51
33 도커(Docker)로 AdguardHome 서버 설치하기 미르다테 2024.12.30 55
32 도커(Docker)로 SnapDrop 서버 설치하기 미르다테 2024.12.30 27
위로