常用 Docker 容器快速部署。

常用 Docker 容器快速部署。



Docker 部署 FastDFS。

拉取镜像。

sudo docker pull delron/fastdfs:latest

创建 Docker 容器。

sudo docker run -d --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker

创建 Storage 容器。

sudo docker run -d --network=host --name storage -e TRACKER_SERVER=192.168.33.128:22122 -v /var/fdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage

进入 storage 容器,到 storage 的配置文件中配置 HTTP 访问的端口。配置文件在 /etc/fdfs/storage.conf。

[geek@192 ~]$ sudo docker exec -it storage /bin/bash
[root@192 nginx-1.12.2]# cd /etc/fdfs/
[root@192 fdfs]# ll
total 88
-rw-rw-r–. 1 root root 1451 Sep 24 02:08 client.conf
-rw-r–r–. 1 root root 1461 Apr 29 2018 client.conf.sample
-rw-r–r–. 1 root root 955 Apr 29 2018 http.conf
-rw-r–r–. 1 root root 31172 Apr 29 2018 mime.types
-rw-r–r–. 1 root root 3679 Sep 24 02:08 mod_fastdfs.conf
-rw-rw-r–. 1 root root 7893 Sep 24 02:08 storage.conf
-rw-r–r–. 1 root root 7927 Apr 29 2018 storage.conf.sample
-rw-rw-r–. 1 root root 105 Apr 29 2018 storage_ids.conf
-rw-r–r–. 1 root root 105 Apr 29 2018 storage_ids.conf.sample
-rw-rw-r–. 1 root root 7307 Apr 29 2018 tracker.conf
-rw-r–r–. 1 root root 7389 Apr 29 2018 tracker.conf.sample
[root@192 fdfs]# vi storage.conf

默认的 http 端口为 8888。

// # the port of the web server on this storage server
http.server_port=8888

配置 NGINX。/usr/local/nginx/conf/nginx.conf。
[root@192 fdfs]# cat /usr/local/nginx/conf/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;

    server {
        listen       8888;
        server_name  localhost;
        location ~/group[0-9]/ {
            ngx_fastdfs_module;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root html;
        }
    }


    # 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;
    #    }
    #}

}

默认存储路径。/var/fdfs/data。
[root@192 fdfs]# ls /var/fdfs/data/
00  07  0E  15  1C  23  2A  31  38  3F  46  4D  54  5B  62  69  70  77  7E  85  8C  93  9A  A1  A8  AF  B6  BD  C4  CB  D2  D9  E0  E7  EE  F5  FC
01  08  0F  16  1D  24  2B  32  39  40  47  4E  55  5C  63  6A  71  78  7F  86  8D  94  9B  A2  A9  B0  B7  BE  C5  CC  D3  DA  E1  E8  EF  F6  FD
02  09  10  17  1E  25  2C  33  3A  41  48  4F  56  5D  64  6B  72  79  80  87  8E  95  9C  A3  AA  B1  B8  BF  C6  CD  D4  DB  E2  E9  F0  F7  FE
03  0A  11  18  1F  26  2D  34  3B  42  49  50  57  5E  65  6C  73  7A  81  88  8F  96  9D  A4  AB  B2  B9  C0  C7  CE  D5  DC  E3  EA  F1  F8  FF
04  0B  12  19  20  27  2E  35  3C  43  4A  51  58  5F  66  6D  74  7B  82  89  90  97  9E  A5  AC  B3  BA  C1  C8  CF  D6  DD  E4  EB  F2  F9  fdfs_storaged.pid
05  0C  13  1A  21  28  2F  36  3D  44  4B  52  59  60  67  6E  75  7C  83  8A  91  98  9F  A6  AD  B4  BB  C2  C9  D0  D7  DE  E5  EC  F3  FA  storage_stat.dat
06  0D  14  1B  22  29  30  37  3E  45  4C  53  5A  61  68  6F  76  7D  84  8B  92  99  A0  A7  AE  B5  BC  C3  CA  D1  D8  DF  E6  ED  F4  FB  sync
  • 测试代码。
        <dependency>
            <groupId>com.github.tobato</groupId>
            <artifactId>fastdfs-client</artifactId>
            <version>1.26.7</version>
        </dependency>
# ~ ~ ~ ~ ~ ~ ~
# 分布式文件系统 FDFS 配置。
# ~ ~ ~ ~ ~ ~ ~
fdfs.so-timeout=1501
fdfs.connect-timeout=601
# 缩略图生成参数。
fdfs.thumb-image.width=150
fdfs.thumb-image.height=150
# TrackerList 参数。支持多个。
fdfs.tracker-list=192.168.33.128:22122
fdfs.web-server-url=http://192.168.33.128:8888/
package com.tanhua.server;

import com.github.tobato.fastdfs.domain.fdfs.StorePath;
import com.github.tobato.fastdfs.service.FastFileStorageClient;
import org.apache.commons.io.FileUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.io.File;
import java.io.IOException;

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestFastDFS {

    @Autowired
    protected FastFileStorageClient fastFileStorageClient;

    @Test
    public void testUpload() {
        String path = "C:\\Users\\geek\\Desktop\\png.。\\无标题·.png";
        File file = new File(path);

        try {
            StorePath storePath = this.fastFileStorageClient.uploadFile(FileUtils.openInputStream(file), file.length(), "jpg", null);

            System.out.println(storePath);// StorePath [group=group1, path=M00/00/00/wKghgF9sBBSAbsyvAELG45c6F4o645.jpg]
            System.out.println(storePath.getFullPath());// group1/M00/00/00/wKghgF9sBBSAbsyvAELG45c6F4o645.jpg
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

http://192.168.33.128:8888/group1/M00/00/00/wKghgF9sBBSAbsyvAELG45c6F4o645.jpg



Docker 部署 MongoDB。

拉取镜像。

sudo docker pull mongo

创建容器。

sudo docker create --name mongodb --restart=always -p 27017:27017 -v mongodb:/data/db mongo:4.0.3

启动容器。

sudo docker start mongodb

进入容器。

sudo docker exec -it mongodb /bin/bash

使用 MongoDB 客户端进行操作。

mongo
> show dbs # 查询所有数据库。
admin 0.000GB
config 0.000GB
local 0.000GB

root@593435b420e5:/# mongo
MongoDB shell version v4.0.3
connecting to: mongodb://127.0.0.1:27017
Implicit session: session { "id" : UUID("d888a81c-50c0-4664-a100-c33b9b66a3cd") }
MongoDB server version: 4.0.3
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	http://docs.mongodb.org/
Questions? Try the support group
	http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2020-09-23T15:30:41.649+0000 I CONTROL  [initandlisten] 
2020-09-23T15:30:41.649+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-09-23T15:30:41.649+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2020-09-23T15:30:41.649+0000 I CONTROL  [initandlisten] 
2020-09-23T15:30:41.650+0000 I CONTROL  [initandlisten] 
2020-09-23T15:30:41.650+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2020-09-23T15:30:41.650+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-09-23T15:30:41.650+0000 I CONTROL  [initandlisten] 
2020-09-23T15:30:41.650+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2020-09-23T15:30:41.650+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-09-23T15:30:41.650+0000 I CONTROL  [initandlisten] 
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

> 



Docker 部署 RocketMQ。

拉取镜像。

sudo docker pull foxoiswho/rocketmq:server-4.3.2
sudo docker pull foxoiswho/rocketmq:broker-4.3.2

创建 nameserver 容器。

sudo docker create -p 9876:9876 --name rmqserver
-e “JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m”
-e “JAVA_OPTS=-Duser.home=/opt”
-v rmqserver-logs:/opt/logs
-v rmqserver-store:/opt/store
foxiswho/rocketmq:server-4.3.2

创建 broker.conf 文件。

sudo vim /home/geek/geek/conf/broker.conf
brokerIP1=192.168.33.128
namesrvAddr=192.168.33.128:9876
brokerName=broker_tanhua

创建 broker 容器。

sudo docker create -p 10911:10911 -p 10909:10909 --name rmqbroker
-e “JAVA_OPTS=-Duser.home=/opt”
-e “JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m”
-v /home/geek/geek/conf/broker.conf:/etc/rocketmq/broker.conf
-v rmqbroker-logs:/opt/logs
-v rmqbroker-store:/opt/store
foxiswho/rocketmq:broker-4.3.2

启动容器。

sudo docker start rmqserver rmqbroker

部署 RocketMQ 管理工具。

sudo docker pull styletang/rocketmq-console-ng:1.0.0

创建并启动容器。

sudo docker run -e “JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.33.128:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false” -p 8082:8080 -t styletang/rocketmq-console-ng:1.0.0



Docker 搭建 Redis 集群。

sudo docker create --name redis-node01 --net host -v redis-node01:/data redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-01.conf --port 6379

sudo docker create --name redis-node02 --net host -v redis-node02:/data redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-02.conf --port 6380

sudo docker create --name redis-node03 --net host -v redis-node03:/data redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-03.conf --port 6381

  • 启动容器。

sudo docker start redis-node01 redis-node02 redis-node03

  • 进入 redis-node01 容器进行操作。

sudo docker exec -it redis-node01 /bin/bash

  • 组建集群。

redis-cli --cluster create 192.168.33.128:6379 192.168.33.128:6380 192.168.33.128:6381 --cluster-replicas 0

  • 查询集群信息。

127.0.0.1:6379> CLUSTER NODES
ee90f598b5530092fdcecb6ab7f449963a737011 192.168.33.128:6379@16379 myself,master - 0 1600841410000 1 connected 0-5460
a73be77bc0b5eceadd7db98b6f876ec8f0707c32 192.168.33.128:6380@16380 master - 0 1600841411105 2 connected 5461-10922
ec17a99a91a86b464b2f484094ed1f24d78eb559 192.168.33.128:6381@16381 master - 0 1600841412120 3 connected 10923-16383

127.0.0.1:6379> set name geek
(error) MOVED 5798 192.168.33.128:6380
127.0.0.1:6379> 
root@192:/data# redis-cli -c
127.0.0.1:6379> set name geek
-> Redirected to slot [5798] located at 192.168.33.128:6380
OK
192.168.33.128:6380> get name
"geek"
192.168.33.128:6380> del name
(integer) 1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lyfGeek

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值