docker镜像中搭建FastDfs
- 一、搭建过程
- 二、docker端口映射
- 三、映射的方法
- 三、配置Tracker 和 Storage
环境:腾讯云服务器上 ubuntu20.04镜像
一、搭建过程
正常直接在云服务器上搭建过程参考博客:
https://blog.csdn.net/qq_38531706/article/details/117625196
如果需要在已经运行的docker上搭建,可以参考之后的内容。
二、docker端口映射
在dcoker中搭建为什么docker需要增加端口映射?
Docker 容器通过端口映射可以将容器内部的网络端口暴露给宿主机,使得宿主机可以访问容器内部的服务。端口映射是 Docker 网络功能的重要组成部分,它允许容器与外部世界进行通信。以下是端口映射的一些主要作用:
服务暴露:端口映射允许将容器内部的应用程序端口(如 Web 服务器的 80 端口)映射到宿主机的端口上,这样外部的客户端就可以通过宿主机的 IP 地址和指定的端口访问容器中的服务。
-
网络隔离:容器内部的网络环境与宿主机是隔离的,通过端口映射可以控制哪些端口对外开放,从而增强安全性。
-
负载均衡:在复杂的应用场景中,可以通过将多个容器的相同端口映射到宿主机的同一个端口,并使用负载均衡器来分发请求,实现负载均衡。
-
开发和测试:开发者可以在本地机器上运行容器,并通过端口映射来测试应用程序,而无需在生产环境中部署。
-
容器间通信:除了与外部通信,端口映射还可以用于容器之间的通信。宿主机上的其他容器可以通过映射的端口与目标容器进行通信。
-
端口冲突避免:在宿主机上运行多个容器时,可能需要避免端口冲突。通过端口映射,可以将不同容器的端口映射到宿主机的不同端口上,从而解决冲突问题。
三、映射的方法
映射端口同时运行镜像:
使用 -p 参数,格式为 -p <宿主机端口>:<容器端口>。
例如,要将容器的 80 端口映射到宿主机的 8080 端口,可以使用以下命令:
docker run -p 8080:80
这样,宿主机上的 8080 端口就会映射到容器的 80 端口,外部请求可以通过访问宿主机的 8080 端口来访问容器中的 Web 服务。
镜像已经运行起来后
,对已有容器增加新的端口映射方法:
参考链接:https://blog.csdn.net/qq_42511420/article/details/124926620
同时腾讯云服务器需要打开防火墙响应端口.
如下图已经将 docker 镜像 中的 20000~20003 端口映射到云服务器的 22、80、22122、23000端口,可以使用 22 端口访问镜像的 SSH 服务,80 端口访问镜像的 NGINX 服务、20002端口访问Tracke服务、20003端口访问Storage服务。
三、配置Tracker 和 Storage
关键是要根据前面的映射设置成对外的端口才能访问到内部docker的服务,比如更改 tracker.conf 和storage.conf 中 port 如下:
# 启用配置文件(默认为 false,表示启用配置文件)
disabled=false
# Tracker 服务端口(默认为 22122)
port=20002
# 存储日志和数据的根目录
base_path=/home/fastdfs/tracker
disabled=false
# Storage 服务端口(默认为 23000)
port=20003
# 数据和日志文件存储根目录
base_path=/home/fastdfs/storage
# 存储路径,访问时路径为 M00
# store_path1 则为 M01,以此递增到 M99(如果配置了多个存储目录的话,这里只指定 1 个)
# store_path0 M00
store_path0=/home/fastdfs/storage
# Tracker 服务器 IP 地址和端口,单机搭建时也不要写 127.0.0.1
# tracker_server 可以多次出现,如果有多个,则配置多个
tracker_server=内网ip:20002
# 设置 HTTP 访问文件的端口。这个配置已经不用配置了,配置了也没什么用
# 这也是为何 Storage 服务器需要 Nginx 来提供 HTTP 访问的原因
http.server_port=8888