内网环境使用docker安装kong
下载好docker包、kong镜像包、postgresql镜像包
查看系统发行版本:cat /etc/redhat-release
查看系统架构:uname -a
下载docker离线安装包: https://download.docker.com/linux/static/stable/x86_64/
在有网环境下载kong 的docker 镜像 可以先搜索相关镜像 docker search kong
docker pull kong
下载postgresql 的docker 镜像 用示例9.6最好
docker pull postgres:9.6
将这两个镜像打包 -o 指定到文件
docker save -o /downloads/docker_images/postgres.tar postgres:9.6
docker save -o /downloads/docker_images/kong.tar kong
上传 内网安装docker
将docker-20.10.9.tgz postgres.tar kong.tar 上传至内网服务器
安装docker
tar -zvxf docker-20.10.9.tgz
cp docker/* /usr/bin
创建服务文件
vi /usr/lib/systemd/system/docker.service
具体内容如下
[unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
赋予文件权限
chmod -R 755 /usr/lib/systemd/system/docker.service
重新加载systemctl 配置文件
systemctl daemon-reload
启动docker
systemctl start docker
查看docker运行状态
systemctl status docker
设置开机启动
systemctl enable docker
安装kong 和 postgresql
导入镜像文件
docker load -i /downloads/docker_images/kong.tar
docker load -i /downloads/docker_images/postgres.tar
然后就是根据官方文档操作:https://docs.konghq.com/gateway/2.7.x/install-and-run/docker/
创建一个自定义 Docker 网络以允许容器相互发现和通信:
docker network create kong-net
启动一个 PostgreSQL 容器:
docker run -d --name postgres \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kong" \
postgres:9.6
准备Kong数据库:
docker run --rm --network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=postgres" \
-e "KONG_PG_PASSWORD=kong" \
kong kong migrations bootstrap
运行以下命令以使用 Kong Gateway 启动容器:
docker run -d --name kong-gateway \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=postgres" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001" \
-e "KONG_ADMIN_GUI_URL=http://localhost:8002" \
-p 8000:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
-p 8002:8002 \
-p 8445:8445 \
-p 8003:8003 \
-p 8004:8004 \
kong
测试: curl -i -X GET --url http://localhost:8001/services
进入容器看看
查看现有镜像(-a 包含未启动的)
docker ps -a
进入容器
docker exec -it 2806ff4c82c2 bash
容器内使用 systemctl 命令
/bin/systemctl 或 service
由于docker 的端口是通过防火墙转发的请不要关闭防火墙,不然容器内部无法访问外部网络