pause容器

118 阅读1分钟

参考链接

本文旨在实战演练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内。