本文旨在实战演练pause容器使用方法,在k8s容器编排系统下,每个pod都会默认预先启动pause容器执行初始化环境操作,包括共享存储和共享网络空间等,力求言简意赅。
**如有侵权,请告知本人tommyhey@163.com
**
一、启动步骤
本实验由三个组件构成,分别为pause、ngnix和echo-server镜像。
注意点
- 启动nginx容器前先进入工作目录并创建配置文件;
- 曝露echo-server的服务端口与nginx配置内upstream服务端口一致。
1)启动pause容器
docker run -d --name pause -p 8880:80 --ipc=shareable jimmysong/pause-amd64:3.0
2)启动nginx
docker run -d --name nginx -v `pwd`/nginx.conf:/etc/nginx/nginx.conf --net=container:pause --ipc=container:pause --pid=container:pause nginx
nginx 配置文件(nginx.conf)
error_log stderr;
events {
worker_connections 1024;
}
http {
access_log /dev/stdout combined;
server {
listen 80 default_server;
server_name example.com www.example.com;
location / {
proxy_pass http://127.0.0.1:2368;
}
}
}
3)启动echo-server
$docker run -d --name echo-server --env=PORT=2368 --net=container:pause --ipc=container:pause --pid=container:pause ealen/echo-server:latest
二、实验结果
2.1 查看容器
2.2 模拟请求
$curl localhost:8880/echo
## 输出结果
{"host":{"hostname":"127.0.0.1","ip":"::ffff:127.0.0.1","ips":[]},"http":{"method":"GET","baseUrl":"","originalUrl":"/echo","protocol":"http"},"request":{"params":{"0":"/echo"},"query":{},"cookies":{},"body":{},"headers":{"host":"127.0.0.1:2368","connection":"close","user-agent":"curl/7.77.0","accept":"*/*"}},"environment":{"PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","HOSTNAME":"b657c7641513","PORT":"2368","NODE_VERSION":"16.16.0","YARN_VERSION":"1.22.19","HOME":"/root"}}
2.3 Nginx日志
2.4 进程隔离
- 进入echo-server容器查看进程可以看到3个进程在同一个namespace内。