首页 > 其他 > 详细

使用 docker-compose 搭建 fastdfs

时间:2021-04-12 18:01:36      阅读:235      评论:0      收藏:0      [点我收藏+]
  • 平台 :Mac M1

  • 备注:关于 IP Address

    关于 docker 的网络模式,上述文中提到了 docker 的 Host 模式
    如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。

    问题在于:使用宿主机的 IP 和端口的话,配置文件中 IP 填写 localhost的话按理说能访问到容器,然而事实上却不行。个人理解(如果理解有问题的话烦请指正)的 IP Address填写方法如下:

    启动 tracker 时控制台输出:
    技术分享图片192.168.64.2的网络为:技术分享图片 192.168.65.4的网络为:技术分享图片

  • 文件目录

    ├── docker-compose.yaml
    ├── nginx
    │   └── nginx.conf
    ├── storage
    │   └── data
    ├── store_path
    └── tracker
    	└── conf
    		└── client.conf
    
  • docker-compose.yaml

    version: "2"
    services:
    	fastdfs-tracker:
    		hostname: fastdfs-tracker
    		container_name: fastdfs-tracker
    		image: season/fastdfs:1.2
    		network_mode: "host"
    		command: tracker
    		volumes:
    		  - ./tracker/data:/fastdfs/tracker/data
    		  - ./tracker/conf:/etc/fdfs
    	fastdfs-storage:
    		hostname: fastdfs-storage
    		container_name: fastdfs-storage
    		image: season/fastdfs:1.2
    		network_mode: "host"
    		volumes:
    		  - ./storage/data:/fastdfs/storage/data
    		  - ./store_path:/fastdfs/store_path
    		environment:
    		  - TRACKER_SERVER=192.168.64.2:22122
    		command: storage
    		depends_on:
    		  - fastdfs-tracker
    	fastdfs-nginx:
    		hostname: fastdfs-nginx
    		container_name: fastdfs-nginx
    		image: season/fastdfs:1.2
    		network_mode: "host"
    		volumes:
    		  - ./nginx/nginx.conf:/etc/nginx/conf/nginx.conf
    		  - ./store_path:/fastdfs/store_path
    		environment:
    		  - TRACKER_SERVER=192.168.64.2:22122
    		command: nginx
    
  • ./tracker/conf/client.conf

    # connect timeout in seconds
    # default value is 30s
    connect_timeout=30
    
    # network timeout in seconds
    # default value is 30s
    network_timeout=60
    
    # the base path to store log files
    base_path=/fastdfs/client
    
    # tracker_server can ocur more than once, and tracker_server format is
    #  "host:port", host can be hostname or ip address
    # 需要修改此处 ip
    tracker_server=192.168.64.2:22122
    
    #standard log level as syslog, case insensitive, value list:
    ### emerg for emergency
    ### alert
    ### crit for critical
    ### error
    ### warn for warning
    ### notice
    ### info
    ### debug
    log_level=info
    
    # if use connection pool
    # default value is false
    # since V4.05
    use_connection_pool = false
    
    # connections whose the idle time exceeds this time will be closed
    # unit: second
    # default value is 3600
    # since V4.05
    connection_pool_max_idle_time = 3600
    
    # if load FastDFS parameters from tracker server
    # since V4.05
    # default value is false
    load_fdfs_parameters_from_tracker=false
    
    # if use storage ID instead of IP address
    # same as tracker.conf
    # valid only when load_fdfs_parameters_from_tracker is false
    # default value is false
    # since V4.05
    use_storage_id = false
    
    # specify storage ids filename, can use relative or absolute path
    # same as tracker.conf
    # valid only when load_fdfs_parameters_from_tracker is false
    # since V4.05
    storage_ids_filename = storage_ids.conf
    
    
    #HTTP settings
    http.tracker_server_port=80
    
    #use "#include" directive to include HTTP other settiongs
    ##include http.conf
    
  • ./nginx/nginx.conf

    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    events {
    	worker_connections  1024;
    }
    
    http {
    	include       mime.types;
    	default_type  application/octet-stream;
    
    	#log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
    	#                  ‘$status $body_bytes_sent "$http_referer" ‘
    	#                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;
    
    	#access_log  logs/access.log  main;
    
    	sendfile        on;
    	#tcp_nopush     on;
    
    	#keepalive_timeout  0;
    	keepalive_timeout  65;
    
    	#gzip  on;
    
    	server {
    		listen       9800;
    		server_name  localhost;
    
    		#charset koi8-r;
    
    		#access_log  logs/host.access.log  main;
    
    		location / {
    			root /fastdfs/store_path/data;
    			ngx_fastdfs_module;
    		}
    
    		#error_page  404              /404.html;
    
    		# redirect server error pages to the static page /50x.html
    		#
    		error_page   500 502 503 504  /50x.html;
    		location = /50x.html {
    			root   html;
    		}
    
    		# proxy the PHP scripts to Apache listening on 127.0.0.1:80
    		#
    		#location ~ \.php$ {
    		#    proxy_pass   http://127.0.0.1;
    		#}
    
    		# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    		#
    		#location ~ \.php$ {
    		#    root           html;
    		#    fastcgi_pass   127.0.0.1:9000;
    		#    fastcgi_index  index.php;
    		#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    		#    include        fastcgi_params;
    		#}
    
    		# deny access to .htaccess files, if Apache‘s document root
    		# concurs with nginx‘s one
    		#
    		#location ~ /\.ht {
    		#    deny  all;
    		#}
    	}
    
    
    	# another virtual host using mix of IP-, name-, and port-based configuration
    	#
    	#server {
    	#    listen       8000;
    	#    listen       somename:8080;
    	#    server_name  somename  alias  another.alias;
    
    	#    location / {
    	#        root   html;
    	#        index  index.html index.htm;
    	#    }
    	#}
    
    
    	# HTTPS server
    	#
    	#server {
    	#    listen       443 ssl;
    	#    server_name  localhost;
    
    	#    ssl_certificate      cert.pem;
    	#    ssl_certificate_key  cert.key;
    
    	#    ssl_session_cache    shared:SSL:1m;
    	#    ssl_session_timeout  5m;
    
    	#    ssl_ciphers  HIGH:!aNULL:!MD5;
    	#    ssl_prefer_server_ciphers  on;
    
    	#    location / {
    	#        root   html;
    	#        index  index.html index.htm;
    	#    }
    	#}
    }
    

使用 docker-compose 搭建 fastdfs

原文:https://www.cnblogs.com/edoclin/p/14648832.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!