I am not able to run both apache (httpd) and nginx in the same pod. Indeed both containers are running on port 80.
# kubectl logs -f multi-container -c apache (98)Address in use: AH00072: make_sock: could not bind to address [::]:80
I visited the home page of nginx in dockerhub and I noticed the environment variable
NGINX_PORT, I set it to
81 and I changed
containerPort to 81 as well. Even though, the nginx is still running on port 80.
# kubectl exec -it multi-container -c nginx -- nc -zv localhost 80 localhost (127.0.0.1:80) open # kubectl exec -it multi-container -c nginx -- nc -zv localhost 81 command terminated with exit code 1
In addition, the env variable inside the container is correct:
# kubectl exec -it multi-container -c nginx -- env | grep NGINX_PORT= NGINX_PORT=81
This my pod definition:
apiVersion: v1 kind: Pod metadata: labels: run: multi-container name: multi-container spec: containers: - image: nginx:alpine name: nginx ports: - containerPort: 81 env: - name: NGINX_PORT value: "81" - image: httpd:alpine name: apache ports: - containerPort: 80 dnsPolicy: ClusterFirst restartPolicy: Always
Without making nginx as reverse proxy to httpd, how to make two containers running separately on different ports. Should I customize its images and build new ones?