Skip to content
注意

文章发布较早,内容可能过时,阅读注意甄别。

docker安全

docker安全

FAQ

📍 注意:容器和宿主机使用同一个内核,所以性能损耗小。但可能存在一定的安全隐患

这样的话,可能有一个安全隐患。

有可能如果在容器里修改了内核配置,但会导致宿主机上的内核配置发生变化。

--疑问:现在真的会发生这种情况吗?应该不会了吧?==>会的,特别要注意。因为他们共享的是同一个内核

案例:docker起容器加上一个-p 127.0.0.1:宿主机端口:容器端口吧

2024年9月20日测试。

image-20240920123113910

背景

我自己的nginx配置:

image-20240920121216686

群主建议:

image-20240920121259616

image-20240920121317352

image-20240920121411460

image-20240920121444687

image-20240920121525536

image-20240920121601829

gpt

docker里 -p 127.0.0.1:1081:80是什么意思?

在 Docker 中,-p 127.0.0.1:1081:80 是一个用于端口映射的选项,具体含义如下:

解释

  • -p: 这是 Docker 命令中的参数,用于指定端口映射。

  • 127.0.0.1:1081: 这是主机上的 IP 地址和端口号。

    • 127.0.0.1 是本地回环地址,表示仅允许本地机器访问。
    • 1081 是主机上要映射的端口号。
  • 80: 这是 Docker 容器内部的端口号,表示容器中运行的应用程序正在监听这个端口。

整体含义

这个命令的意思是将 Docker 容器内的 80 端口(通常是用于 HTTP 服务的默认端口)映射到主机的 1081 端口。这样,只有在主机上通过 http://127.0.0.1:1081 访问时,才能与容器内的服务进行交互。

使用示例

假设你有一个在容器中运行的 Web 服务器(比如 Nginx 或 Apache),它在容器内的 80 端口上提供服务。通过这个端口映射,你可以在主机上使用 http://127.0.0.1:1081 访问这个 Web 服务器。

小结

  • 容器的 80 端口映射到主机的 1081 端口。
  • 访问 http://127.0.0.1:1081 实际上是访问容器内的服务。
  • 由于使用了回环地址 127.0.0.1,只有本地访问可以与容器通信,外部网络无法直接访问。

再gpt:如果我用docker-copmose时,如何把127.0.0.1加上呢?

在使用 Docker Compose 时,你可以在 docker-compose.yml 文件中指定端口映射,将服务的端口绑定到 127.0.0.1。这样,只有本地机器能够访问该服务。

示例 docker-compose.yml

下面是一个示例,展示如何将服务的端口绑定到 127.0.0.1

yaml
version: '3'
services:
  web:
    image: your_image_name
    ports:
      - "127.0.0.1:1081:80"

解释

  • version: '3': 这是 Docker Compose 文件的版本。
  • services: 定义一组服务。
  • web: 服务的名称,可以自定义。
  • image: 你要使用的 Docker 镜像。
  • ports: 这里定义了端口映射。
    • "127.0.0.1:1081:80": 这表示将主机的 1081 端口映射到容器的 80 端口,并且只允许从 127.0.0.1 访问。

启动服务

在定义好 docker-compose.yml 文件后,可以使用以下命令启动服务:

bash
docker-compose up

总结

通过在 docker-compose.yml 文件中指定 "127.0.0.1:1081:80",你可以确保只有本地机器能够访问 Docker 容器中的服务。确保在保存和运行文件之前,Docker Compose 已经安装并配置好。

测试

  • 重新配置自己matchete内容:

image-20240920122810675

重启容器:

image-20240920122830747

  • 配置自己nginx内容
bash
cd /etc/nginx/conf.d/
vi photo.conf
#将公网ip改成127.0.0.1

image-20240920123000377

重启nginx:

nginx -s reload

  • 测试效果

清空浏览器缓存:

可以发现,此时通过域名访问是正常的,通过公网ip:端口就是有问题的。(nice😉)

https://photo.onedayxyy.cn/

image-20240920123113910

http://47.100.215.163:1081/

image-20240920123126946

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码

x2675263825 (舍得), qq:2675263825。

🍀 微信公众号

《云原生架构师实战》

🍀 csdn

https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

🍀 博客

www.onlyyou520.com

🍀 知乎

https://www.zhihu.com/people/foryouone

🍀 语雀

https://www.yuque.com/books/share/34a34d43-b80d-47f7-972e-24a888a8fc5e?# 《云笔记最佳实践》

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!