使用docker compose 安装组件,迁移到生产和维护起来都更简单,以下是安装步骤:

A. 前置条件:

1. linux机器

2. 已安装了docker和docker-compose

B. 步骤:

1.创建网络

docker network create kong-net

2.安装数据库,使用docker-compose

version: "3.8"

networks:
  kong-net:
    external: true
    
services:
 postgres:
  image: postgres:9.6.24
  container_name: cjb_postgres
  hostname: cjb_postgres
  restart: always
  environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: root
  networks: 
    - kong-net
  ports:
    - 5432:5432
  volumes:
    - /root/PostgreSQL/data:/var/lib/postgresql/data

这里要指定hostname, 以便后面访问数据库时能通过cjb_postgres找到

4. 创建数据库用户kong  和 konga

CREATE ROLE "kong" login ENCRYPTED PASSWORD 'kong' SUPERUSER CREATEDB NOINHERIT;

CREATE ROLE "konga" login ENCRYPTED PASSWORD 'konga' SUPERUSER CREATEDB NOINHERIT;

5. 初始化数据库kong(一次性,直接用docker run即可)

sudo docker run --rm \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=cjb_postgres" \  
     -e "KONG_PG_USER=kong" \
     -e "KONG_PG_PASSWORD=kong" \
     -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
     kong:2.3 kong migrations bootstrap
     

6. 初始化UI数据库konga(一次性)

sudo docker run --rm --network=kong-net \
10.0.18.191:5000/yongan/konga:latest \
-c prepare \
-a postgres \
-u postgres://konga:konga@cjb_postgres:5432/konga

7. 运行【完整docker-compose文件】

version: "3.8"

networks:
  kong-net:
    external: true
    
services:
 kong-database:
  image: postgres:9.6.24
  container_name: cjb_postgres
  hostname: cjb_postgres
  restart: always
  environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: root
  networks: 
    - kong-net
  ports:
    - 5432:5432
  volumes:
    - /root/PostgreSQL/data:/var/lib/postgresql/data

 kong:
  image: kong:2.3
  container_name: kong
  hostname: kong
  depends_on:
      - kong-database
  restart: unless-stopped
  environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: cjb_postgres
      KONG_PG_USER: kong
      KONG_PG_PASSWORD: kong
      KONG_PROXY_ACCESS_LOG: /dev/stdout
      KONG_ADMIN_ACCESS_LOG: /dev/stdout
      KONG_PROXY_ERROR_LOG: /dev/stderr
      KONG_ADMIN_ERROR_LOG: /dev/stderr
      KONG_ADMIN_LISTEN: 0.0.0.0:8001, 0.0.0.0:8444 ssl
  networks: 
    - kong-net
  ports:
    - 8000:8000  # proxy http
    - 8443:8443  # proxy https
    - 8001:8001  # admin api http
    - 8444:8444  # admin api https

 konga:
    image: pantsel/konga:latest
    container_name: konga
    restart: unless-stopped
    networks:
      - kong-net
    ports:
      - 1337:1337
    environment:
      DB_ADAPTER: postgres
      DB_URI: postgres://konga:konga@cjb_postgres:5432/konga
      NODE_ENV: production
      DB_PASSWORD: konga

C. 可能遇到的问题:

1. docker pull国内无法下载:

Solve: 新增或编辑/etc/docker/daemon.json

{"registry-mirrors": ["https://docker-0.unsee.tech","https://docker-cf.registry.cyou","https://docker.1panel.live"]}

(这几个源目前是可用的,如果失效了可以到这里找其他源: https://github.com/dongyubin/DockerHub)

重启docker

sudo systemctl daemon-reload		#重启daemon进程
sudo systemctl restart docker		#重启docker
sudo docker info                    # 查看生效情况

2. docker run --rm 时,本地找不到镜像,从官方拉取失败:

Solve: 先使用docker pull将需要运行的镜像拉下来,然后再docker run

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐