# Docker 各系統安裝

### 各系統安裝連結

- zabbix  
    [https://www.zabbix.com/documentation/4.4/zh/manual/installation/containers](https://www.zabbix.com/documentation/4.4/zh/manual/installation/containers)  
    [https://github.com/zabbix/zabbix-docker/tree/6.4/Dockerfiles/web-nginx-pgsql](https://github.com/zabbix/zabbix-docker/tree/6.4/Dockerfiles/web-nginx-pgsql)
- elk  
    <div><div>[https://github.com/deviantony/docker-elk](https://github.com/deviantony/docker-elk)  
    https://github.com/deviantony/docker-elk</div></div>
- smokeping  
    [https://cloud.tencent.com/developer/article/1703797](https://cloud.tencent.com/developer/article/1703797)
- jenkins  
    [https://hub.docker.com/\_/jenkins/](https://hub.docker.com/_/jenkins/)
- wekan  
    [https://github.com/wekan/wekan/wiki/Docker](https://github.com/wekan/wekan/wiki/Docker)  
    [https://wekan.github.io/wekan-doc/](https://wekan.github.io/wekan-doc/) (文件)
- postgresSQL  
    [https://hub.docker.com/\_/postgres](https://hub.docker.com/_/postgres)  
    [https://cde566.medium.com/docker-compose%E5%89%B5%E5%BB%BApostgresql-7f3f9519fa20](https://cde566.medium.com/docker-compose%E5%89%B5%E5%BB%BApostgresql-7f3f9519fa20)
- powerdns  
    [https://blog.csdn.net/sdhzdtwhm/article/details/135910057](https://blog.csdn.net/sdhzdtwhm/article/details/135910057)

---

###  

### Jenkins

[Jenkins - Official Image | Docker Hub](https://hub.docker.com/_/jenkins)

[jenkins/jenkins - Docker Image | Docker Hub](https://hub.docker.com/r/jenkins/jenkins)

```shell
docker run -d	\
	-p 8080:8080 -p 50000:50000 \
	-v ~/jenkins/home:/var/jenkins_home \
    --name jenkins \
    jenkins/jenkins:lts
```

ps. jenkins 抓取一定要帶版號不然會報錯

[jenkins Tags | Docker Hub](https://hub.docker.com/_/jenkins?tab=tags)

```
Using default tag: latest
Error response from daemon: manifest for jenkins:latest not found: manifest unknown: manifest unknown
```

```shell
docker pull jenkins/jenkins:lts
```

ps. 要安裝軟體需要使用root 登入

```shell
docker exec -u root -it jenkins sh
```

```
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
```

```shell
sudo chown -R 1000:1000 {mount jenkins home path}
```

ps.使用nginx revers proxy 現設定問題，需要設定 proxy\_set\_header

[Reverse proxy configuration (jenkins.io)](https://www.jenkins.io/doc/book/system-administration/reverse-proxy-configuration-with-jenkins/)

```
server {
    listen       80;
    server_name  tomcat.srou.com;

    location / {
         sendfile off;
        proxy_pass   http://192.168.100.4:10031/;
        proxy_redirect     default;
        proxy_http_version 1.1;

        # Required for Jenkins websocket agents
        proxy_set_header   Upgrade           $http_upgrade;

        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_max_temp_file_size 0;

        #this is the maximum upload size
        client_max_body_size       10m;
        client_body_buffer_size    128k;

        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffering            off;
        proxy_request_buffering    off; # Required for HTTP CLI commands
        proxy_set_header Connection ""; # Clear for keepalive
      
        
    }

}

```

---

### gitlab

```shell
docker run -d \
	--name gitlab \
	-p 8080:80 -p 443:443 -p 22:22 \
    --privileged \
    --restart always \
    -v ~/gitlab/config:/etc/gitlab \
    -v ~/gitlab/logs:/var/log/gitlab \
    -v ~/gitlab/data:/var/opt/gitlab  \
    gitlab/gitlab-ce
 
```

```
-d : 讓容器(Container)在背景執行
--name : 指定容器(Container)的名稱
-p : 指定主端(Host)對應客端(Quest)的連接埠
--privileged : 容器(Container)内的 root 拥有真正的 root 权限
-restart : 設定為 restart，則容器在異常停止後，會自動重新起動
-v : 將容器(Container)內需永續保存的目錄，連結至主端的目錄
```

 docker-compose.yml

```shell
docker-compose up -d
```

```YAML
version: "3.6"
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    restart: always
    privileged: true
    ports:
      - '8080:80'
      - '443:443'
      - '22:22'
    volumes:
      - '~/gitlab/data:/var/opt/gitlab'
      - '~/gitlab/logs:/var/log/gitlab'
      - '~/gitlab/config:/etc/gitlab'
```

---

### Tomcat

[Docker部署tomcat出現404錯誤 - 台部落 (twblogs.net)](https://www.twblogs.net/a/5e90b821bd9eee34209011b0)

新版tomcat 不提供manager ，需手動複製，webapps.dist copy -&gt; webapps

---

### PostgresSQL

```YAML
version: "3.7"
services:
    db:
        image: postgres:13.2-alpine
        restart: always
        environment:
            POSTGRES_DB: postgres
            POSTGRES_USER: $USER_NAME #postgres
            POSTGRES_PASSWORD: $PASSWORD #1234
            PGDATA: /var/lib/postgresql/data
        volumes:
            - db-data:/var/lib/postgresql/data
        ports:
            - "5432:5432"
    pgadmin:
        image: dpage/pgadmin4:latest
        restart: always
        environment:
            PGADMIN_DEFAULT_EMAIL: $USER_EMAIL #xxx@gmail
            PGADMIN_DEFAULT_PASSWORD: $PASSWORD #abcd
            PGADMIN_LISTEN_PORT: 80
        ports:
            - "8080:80"
        volumes:
            - pgadmin-data:/var/lib/pgadmin
        links:
            - "db:pgsql-server"
volumes:
    db-data:
    pgadmin-data:
```