如何设置docker keycloak base urlas参数?
我有以下nginx反向代理配置:
server {
listen 80;
server_name example.com;
location /keycloak {
proxy_pass http://example.com:8087/;
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试访问http://example.com/keycloak/时,我获得了一个keycloak http重定向到http://example.com/auth/而不是http://example.com/keycloak/auth/
有任何想法吗?
我们可以在docker engine swarm模式下跨多个主机共享一个公共/单个命名卷,这是最简单的方法吗?
我无法mongodb从docker swarm群集连接到外部服务器.
据我了解这是因为集群使用覆盖网络驱动程序.我对吗?
如果没有,docker overlay驱动程序如何工作以及如何mongodb从群集连接到外部服务器?
我正在运行一台Windows7(64位)机器vmplayer,它有主机Fedora 25.
我安装docker CE了它,我的例子到现在都运行良好.
问题在于尝试运行docker-machine示例.根据我的理解,需要为docker创建主机.
虽然是有意义的有它Windows和Mac,但我需要它Linux?
甚至更令人困惑的是,为什么我到目前为止尝试的所有例子都运作良好?
另一点是,如果docker-machine不是Linux码头分布的一部分; 那么我们如何创建多个docker主机Linux?
假设我有三个列表,我需要遍历它们并对内容做一些事情.
这三个名单streaks_0,streaks_1和streaks_2.对于每个列表,我需要使用特定于每个列表的不同值.例如,streak_0_num0s在streaks_1for循环中不起作用.
有没有办法让这三个for循环成为一个或至少一种方法来清理它?
for number in streaks_0:
if number == 0:
streak_0_num0s += 1
elif number != 0:
streak_0_sum += number
streak_0_average = (streak_0_sum / (len(streaks_0) - streak_0_num0s))
for number in streaks_1:
if number == 0:
streak_1_num0s += 1
elif number != 0:
streak_1_sum += number
streak_1_average = (streak_1_sum / (len(streaks_1) - streak_1_num0s))
for number in streaks_2:
if number == 0:
streak_2_num0s += 1
elif number != 0:
streak_2_sum += …Run Code Online (Sandbox Code Playgroud) 我将应用程序托管在Docker容器中。当我运行docker ps命令时,它给出了如下信息。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6405daf98246 rdarukumalli/testapp-master "/bin/bash" 4 hours ago Up 4 hours 0.0.0.0:32797->443/tcp, 0.0.0.0:32796->8000/tcp, 0.0.0.0:32795->8080/tcp, 0.0.0.0:32794->8443/tcp, 0.0.0.0:32793->9997/tcp insane_poincare
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下URL从我的计算机访问此应用程序。到目前为止没有任何工作。
0.0.0.0:32795/testapp/login.jsp
0.0.0.0:8080/testapp/login.jsp
localhost:8080/testapp/login.jsp
localhost:32795/testapp/login.jsp
Run Code Online (Sandbox Code Playgroud)
但是,如果我在"curl http://localhost:8080/testapp/login.jsp"docker容器的bash中输入命令,则可以登录HTML页面。
有人可以帮助我了解这些URL映射以及在Docker容器之外访问登录页面需要使用哪些URL吗?
我尝试通过STOMP与服务器连接,但是收到“丢失的连接”消息以及任何特定信息。
WebSocket配置:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableStompBrokerRelay("/topic", "/queve")
.setClientLogin("quest")
.setClientPasscode("quest");
registry.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/hello").setAllowedOrigins("*").withSockJS();
}
}
Run Code Online (Sandbox Code Playgroud)
控制器:
@Controller
public class HelloController {
@MessageMapping("/hello")
public void greeting(HelloMessage message){
System.out.println("Wiadomosc: " + message.getName());
}
@SubscribeMapping({"/helloSub"})
public HelloMessage handleSubscription() {
HelloMessage outgoing = new HelloMessage();
System.out.println("SUB");
outgoing.setName("Jas");
return outgoing;
}
}
Run Code Online (Sandbox Code Playgroud)
js脚本:
var sock = new SockJS("http://localhost:8080/BuyMyTime/hello");
var stomp = Stomp.over(sock);
var payload = JSON.stringify({'name':'Jasiek'});
stomp.connect('quest', 'quest', function(frame){ …Run Code Online (Sandbox Code Playgroud) 有没有办法告诉 docker 在运行时不要使用某些特定的网络 docker-compose up?
我正在使用一些开箱即用的示例 ( hyperledger) 并且每次 docker 获取一个中断我的远程连接的地址时。
[xxx@xxx fabric]$ docker network inspect some_network
[
{
"Name": "some_network",
"Id": "xxx",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.30.0.0/16",
"Gateway": "172.30.0.1/16"
}
]
},
"Internal": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
Run Code Online (Sandbox Code Playgroud)
我想告诉 docker(不编辑 docker-compose.yaml 文件)永远不要使用 network172.30.0.0/16。
我正在使用Traefik作为docker swarm环境上nginx服务之前的反向代理。这是我的docker-stack.yml:
traefik:
image: traefik
command: -c /dev/null --web --docker --docker.swarmmode --docker.watch --docker.domain=domain --logLevel=DEBUG
ports:
- "8080:8080"
- "80:80"
- "443:443"
networks:
- app
volumes:
- /var/run/docker.sock:/var/run/docker.sock
deploy:
placement:
constraints: [node.role == manager]
nginx:
image: nginx
networks:
- app
deploy:
labels:
traefik.port: 80
traefik.docker.network: app
traefik.frontend.rule: "Host:app.domain"
Run Code Online (Sandbox Code Playgroud)
一切正常,但是我需要在Nginx访问日志中使用真实的客户端IP,相反,我得到的信息类似于10.0.1.37
如何获得真实的客户IP?
谢谢,
我有一个Docker Swarm集群设置有3个服务器(1个管理员和2个工作人员).
我使用以下命令启动了Postgresql服务:
docker service create --name postgresql \
--mount src=pg_data,dst=/var/lib/postgresql/data/pgdata \
-p 6542:5432 \
-e POSTGRES_USER="user" \
-e POSTGRES_DB="db" \
-e POSTGRES_PASSWORD="pass" \
-e PGDATA=/var/lib/postgresql/data/pgdata \
--constraint 'node.role == manager' \
postgres
Run Code Online (Sandbox Code Playgroud)
我之前也创建过数据卷:
docker volume create pg_data
Run Code Online (Sandbox Code Playgroud)
现在,我有另一个我想要启动的服务,它基本上是一个捆绑到Docker镜像中的Java应用程序,我想将它连接到postgresql服务.我为网址尝试了以下组合:
jdbc:postgresql://172.18.0.1:5432/db(docker_gwbridge)
jdbc:postgresql://172.17.0.1:5432/db(docker0)
JDBC:在PostgreSQL://本地主机:5432/DB
JDBC:在PostgreSQL:// PostgreSQL的:5432/DB
知道什么可行吗?
我正在为我的服务寻找一些监控和警报解决方案。我发现以下不错的相关作品。
两者都使用dns服务发现来监视服务的多个副本。
我尝试重播这些工作,但发现只能获得单个后端容器ip。
# dig A node-exporter
; <<>> DiG 9.10.4-P8 <<>> A node-exporter
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18749
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;node-exporter. IN A
;; ANSWER SECTION:
node-exporter. 600 IN A 10.0.0.42
;; Query time: 0 msec
;; SERVER: 127.0.0.11#53(127.0.0.11)
;; WHEN: Mon Jan 29 02:57:51 UTC 2018
;; MSG SIZE rcvd: …Run Code Online (Sandbox Code Playgroud) 我试图在反应原生的Android应用程序中获取当前日/月/年.
这就是我所做的:
currentDay: new Date(),
...
console.log('Date:'+this.state.currentDay ,);
console.log('Day: '+this.state.currentDay.getDay() , 'Month: ' + this.state.currentDay.getMonth(), 'Year :'+ this.state.currentDay.getYear());
Run Code Online (Sandbox Code Playgroud)
在控制台我有:
Date:Fri Jun 16 2017 11:27:36 GMT+0000 (GMT)
'Day: 5', 'Month: 5', 'Year :117'
Run Code Online (Sandbox Code Playgroud)
正如你看到的,getDay(),getMonth()并且getYear()不回我想要什么?
docker ×9
docker-swarm ×4
java ×2
nginx ×2
android ×1
date ×1
dns ×1
dry ×1
for-loop ×1
get ×1
jdbc ×1
keycloak ×1
linux ×1
networking ×1
postgresql ×1
prometheus ×1
python ×1
react-native ×1
spring ×1
stomp ×1
traefik ×1
websocket ×1