docker安装es8

1. 拉取镜像

命令
1
docker pull elasticsearch:8.2.2

2. 运行

命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
docker network create elastic

docker run --name es8 --net elastic -p 9200:9200 -p 9300:9300 \
-v /Users/lizihan/Desktop/docker-v/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-it -d -e ES_JAVA_OPTS="-Xms256m -Xmx256m" elasticsearch:8.2.2

docker run --name es8 --net elastic -p 9200:9200 -p 9300:9300 \
-it -d -e ES_JAVA_OPTS="-Xms4g -Xmx4g" --restart=always elasticsearch:8.2.2

-e TAKE_FILE_OWNERSHIP=111 \
-v /Users/lizihan/Desktop/docker-v/elasticsearch/data:/usr/share/elasticsearch/data \
-v /Users/lizihan/Desktop/docker-v/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-e discovery.seed_hosts=node1 \
--privileged \
-e "discovery.type=single-node" \


# 初始化密码
bin/elasticsearch-setup-passwords interactive

# 拷贝证书
docker cp es8:/usr/share/elasticsearch/config/certs/http_ca.crt /Users/lizihan/Desktop/docker-v/elasticsearch

docker cp es8:/usr/share/elasticsearch/config/certs/http_ca.crt /home/sakiraven/docker-v
docker cp es8:/usr/share/elasticsearch/config/certs/http_ca.crt /home/jmlib/docker-v

# 初始化拷贝文件
docker cp es8:/usr/share/elasticsearch/config /Users/lizihan/Desktop/docker-v/elasticsearch
docker cp es8:/usr/share/elasticsearch/data /Users/lizihan/Desktop/docker-v/elasticsearch

# 注意
如果想使用内网访问
tomcat需要加入同一网络
查询网络方式 docker network inspect elastic

# 重置密码
./bin/elasticsearch-users useradd TestSuper -r superuser

# 复制配置文件
docker cp elasticsearch.yml elasticsearch8:/usr/share/elasticsearch/config/elasticsearch.yml

# 安装ik分词器
# 下载 https://github.com/medcl/elasticsearch-analysis-ik/releases
docker cp elasticsearch-analysis-ik-8.0.0.zip elasticsearch:/usr/share/elasticsearch/plugins
# 进入elasticsearch命令行
cd plugins/
mkdir ik
mv elasticsearch-analysis-ik-8.0.0.zip ik/
cd ik/
unzip elasticsearch-analysis-ik-8.0.0.zip
rm elasticsearch-analysis-ik-8.0.0.zip

3. 拉取kibana景象

命令
1

4. 运行

命令
1
2
3
4
5
6
7
8
9
docker run -it -d --name kibana --net elastic -p 5601:5601 kibana:8.2.2


-v /Users/lizihan/Desktop/docker-v/kibana/config:/usr/share/kibana/config \
-v /Users/lizihan/Desktop/docker-v/kibana/data:/usr/share/kibana/data \

只需要在配置文件 kibana.yml 中加入

i18n.locale: "zh-CN"

5. 拷贝kibana配置文件

docker cp kibana:/usr/share/kibana/config /Users/lizihan/Desktop/docker-v/kibana
docker cp kibana:/usr/share/kibana/data /Users/lizihan/Desktop/docker-v/kibana

6. es 证书位置

命令
1
docker cp es8:/usr/share/elasticsearch/config/certs/http_ca.crt /Users/lizihan/Desktop/docker-v/elasticsearch

docker安装jenkins

1. 拉取镜像

命令
1
docker pull qbanxiaoli/fastdfs

2. 启动fastdfs集成容器

命令
1
docker run -d --restart=always --name=fastdfs -p 22122:22122 -p 81:81 -p 11411:11411 -p 11411:11411/udp -p 12200:12200 -p 12200:12200/udp -p 8080:8080 -e IP=192.168.50.99 -e WEB_PORT=81 -v /Users/lizihan/Desktop/docker-v/fastdfs:/var/local qbanxiaoli/fastdfs

3. 验证服务

命令
1
2
echo "Hello FastDFS!">index.html
fdfs_test /etc/fdfs/client.conf upload index.html

查看容器ip命令

命令
1
docker inspect -f='{{.Name}} {{.NetworkSettings.IPAddress}} {{.HostConfig.PortBindings}}' $(docker ps -aq)

事例结果

/tracker 172.17.0.5 map[22122/tcp:[{ 22122}]]

nginx 配置文件位置

/usr/local/nginx/conf/nginx.conf

storage 配置文件位置

/etc/fdfs/storage.conf

ps: mac win使用git官网的components linux使用一键安装

docker安装redis

1.拉取镜像

命令
1
docker pull redis:latest

2.运行shell

命令
1
2
3
4
5
6
docker run -p 6379:6379 --name redis \
-v /home/jmlib/docker-v/redis/redis.conf:/etc/redis/redis.conf \
-v /home/jmlib/docker-v/redis/data:/data \
--restart=always \
-d redis redis-server /etc/redis/redis.conf \
--appendonly yes
mac环境
1
2
3
4
5
docker run -p 6379:6379 --name redis \
-v /Users/lizihan/Desktop/docker-v/redis/redis.conf:/etc/redis/redis.conf \
-v /Users/lizihan/Desktop/docker-v/redis/data:/data \
-d redis redis-server /etc/redis/redis.conf \
--appendonly yes
home配置
1
2
3
4
5
6
docker run -p 6379:6379 --name redis \
-v /home/sakiraven/docker-v/redis/redis.conf:/etc/redis/redis.conf \
-v /home/sakiraven/docker-v/redis/data:/data \
--restart=always \
-d redis redis-server /etc/redis/redis.conf \
--appendonly yes

3.conf配置

基础配置
1
2
3
4
#bind 127.0.0.1 
protected-mode no
appendonly yes
requirepass *****

Swift CoreData 基础向

创建项目使用coredata模版

框架创建

lifetrip.xcdatamodeld
Persistence.swift

使用

lifetrip.xcdatamodeld 添加实体

添加实体

  1. coredata保存与查询
    代理注入环境
    1
    2
    ContentView()
    .environment(\.managedObjectContext, PersistenceController.shared.container.viewContext)
初始化查询
1
2
3
4
5
6
@Environment(\.managedObjectContext) private var viewContext

@FetchRequest(
sortDescriptors: [NSSortDescriptor(keyPath: \FootmarkEntity.startTime, ascending: false)],
animation: .default)
private var footmarks: FetchedResults<FootmarkEntity>
保存(新增)viewContext.save()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private func addItem() {
withAnimation {
let newItem = FootmarkEntity(context: viewContext)
// 实体赋值
let randomNumber:Int = Int(arc4random() % 100) + 1
newItem.id = String(randomNumber);
newItem.endTime = Date()
newItem.startTime = Date()
// 保存
do {
try viewContext.save()
} catch {
let nsError = error as NSError
fatalError("添加失败 \(nsError), \(nsError.userInfo)")
}
}
}
  1. 预览模式
    代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct LabelView_Previews: PreviewProvider {
    static var previews: some View {
    let labelEntity: LabelEntity = { () -> LabelEntity in
    let labelEntity = LabelEntity(context: PersistenceController.preview.container.viewContext)
    labelEntity.picture = UIImage(named: "nekosensei")!.pngData()
    return labelEntity
    }()
    return LabelCardView(labelEntity: labelEntity)
    }
    }
SwiftUI通过监听小键盘高度添加背景,通过点击背景隐藏小键盘

SwiftUI通过监听小键盘高度添加背景,通过点击背景隐藏小键盘

效果图

ExtensionAfterNavigationBackHidden.swift
1
2
3
4
5
6
7
8
9
10
extension UINavigationController: UIGestureRecognizerDelegate {
override open func viewDidLoad() {
super.viewDidLoad()
interactivePopGestureRecognizer?.delegate = self
}

public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
return viewControllers.count > 1
}
}

:D 一言句子获取中...