Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Shining app 0.0.0.0尝试在本地浏览器中查看时拒绝连接_R_Docker_Shiny_Docker Compose - Fatal编程技术网

Docker Shining app 0.0.0.0尝试在本地浏览器中查看时拒绝连接

Docker Shining app 0.0.0.0尝试在本地浏览器中查看时拒绝连接,r,docker,shiny,docker-compose,R,Docker,Shiny,Docker Compose,阅读: 在创建新的闪亮web应用程序时,我使用rstudio模板app.r创建了一个简单的闪亮应用程序 我的目录: doug:~/Projects/test$ pwd /home/work/Projects/test doug:~/Projects/test$ ls -l total 20 -rw-r--r-- 1 work work 178 Sep 24 18:27 docker-compose.yml -rw-r--r-- 1 work work 240 Sep 24 18:16

阅读:

在创建新的闪亮web应用程序时,我使用rstudio模板app.r创建了一个简单的闪亮应用程序

我的目录:

doug:~/Projects/test$ pwd
/home/work/Projects/test
doug:~/Projects/test$ ls -l
total 20
-rw-r--r-- 1 work work  178 Sep 24 18:27 docker-compose.yml
-rw-r--r-- 1 work work  240 Sep 24 18:16 Dockerfile
drwxr-xr-x 2 work work 4096 Sep 24 13:55 test_app
-rw-r--r-- 1 work work  205 Sep 24 13:45 test.Rproj
我的Docker文件:

FROM rocker/shiny-verse

COPY test_app mountpoints/apps/test_app

RUN apt-get update \
    && apt-get upgrade -y
    
WORKDIR mountpoints/apps/test_app

EXPOSE 3838

CMD R --no-save -e 'shiny::runApp("app.R", port = 3838, host = "0.0.0.0")'
我的docker撰写文件:

version: '3.2'
services:
  test:
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
    image: test:latest
    ports:
      - '80:3838'
    user: 'root'
我建立了这个形象:

doug:~/Projects/test$ docker build -t test .
Sending build context to Docker daemon  34.82kB
Step 1/6 : FROM rocker/shiny-verse
 ---> 6ca67ad3f372
Step 2/6 : COPY test_app mountpoints/apps/test_app
 ---> Using cache
 ---> 7d34eee9154b
Step 3/6 : RUN apt-get update     && apt-get upgrade -y
 ---> Using cache
 ---> 6a9f0856291a
Step 4/6 : WORKDIR mountpoints/apps/test_app
 ---> Using cache
 ---> 30897306d02b
Step 5/6 : EXPOSE 3838
 ---> Using cache
 ---> 0affe5f79ba4
Step 6/6 : CMD R --no-save -e 'shiny::runApp("app.R", port = 3838, host = "0.0.0.0")'
 ---> Using cache
 ---> 1ce09f39c2ce
Successfully built 1ce09f39c2ce
Successfully tagged test:latest
然后我尝试使用docker compose运行:

doug:~/Projects/test$ docker-compose run test

R version 4.0.2 (2020-06-22) -- "Taking Off Again"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> shiny::runApp("app.R", port = 3838, host = "0.0.0.0")
Loading required package: shiny

Listening on http://0.0.0.0:3838
现在,当我尝试在浏览器中访问应用程序时,我得到:

无法访问此网站 0.0.0.0拒绝连接

我尝试了一些变化: 127.0.0.1:3838 本地主机:3838 127.0.0.1:3838/测试应用 本地主机:3838/test\u应用程序

在所有情况下,我都看到了相同的消息,无法在浏览器中查看我的应用程序

我尝试了上面docker compose文件的端口部分:

端口:

  • ‘80:3838’
尝试:

'3838:3838', '127.0.0.1:3838', '3838'
在每种情况下,我都会重建图像并重试,但仍然无法在浏览器中查看我的应用程序


如何运行我的闪亮应用程序并在浏览器中查看它?

虽然我知道您打算使用
docker compose
,但我还是迈出了确保基本网络正常工作的第一步。我能够联系到:

docker run-it--rm-p3838:3838测试
然后我尝试了basic
docker
,我能够让它工作

docker编写运行-p 3838:3838测试
(同样,需要
-p3838:3838
.)

从这里看来,
docker compose
实际上是用
up
开始工作。当我(停止上面的容器后)运行时,我也能看到闪亮的应用程序

docker compose up-d测试
因此,
run
up
之间存在差异。在阅读中,我发现:

run
一起使用的命令在新容器中启动,该容器的配置由服务的配置定义,包括卷、链接和其他详细信息。然而,有两个重要的区别

首先,
run
传递的命令覆盖服务配置中定义的命令。例如,如果
web
服务配置是用
bash
启动的,那么
docker compose run web python app.py
将用
python app.py
覆盖它

第二个区别是,
docker compose run
命令不创建服务配置中指定的任何端口。这可防止端口与已打开的端口发生冲突。如果确实希望创建服务端口并将其映射到主机,请指定
--服务端口
标志

(强调矿山)

这促使我尝试(并成功):

docker compose运行--服务端口测试
所有这些,
http://localhost:3838
工作正常(对于我在windows上…应该也适用于其他人,但如果不是
localhost
,请尝试
127.0.0.1


我的文件,为了测试速度稍微修改了一下,因为我没有你的
test\u应用程序

Dockerfile 来自摇滚乐/闪亮诗句的

暴露3838
CMD R——不保存-e'库(闪亮);运行示例(“01_hello”,port=3838,host=“0.0.0.0”);'
docker-compose.yml
版本:“3.2”
服务:
测试:
建造:
上下文:。
dockerfile:dockerfile
重新启动:始终
图片:测试:最新
端口:
- "3838:3838"
用户:'root'

虽然我知道您打算使用
docker compose
,但我还是迈出了确保基本网络正常工作的第一步。我能够联系到:

docker run-it--rm-p3838:3838测试
然后我尝试了basic
docker
,我能够让它工作

docker编写运行-p 3838:3838测试
(同样,需要
-p3838:3838
.)

从这里看来,
docker compose
实际上是用
up
开始工作。当我(停止上面的容器后)运行时,我也能看到闪亮的应用程序

docker compose up-d测试
因此,
run
up
之间存在差异。在阅读中,我发现:

run
一起使用的命令在新容器中启动,该容器的配置由服务的配置定义,包括卷、链接和其他详细信息。然而,有两个重要的区别

首先,
run
传递的命令覆盖服务配置中定义的命令。例如,如果
web
服务配置是用
bash
启动的,那么
docker compose run web python app.py
将用
python app.py
覆盖它

第二个区别是,
docker compose run
命令不创建服务配置中指定的任何端口。这可防止端口与已打开的端口发生冲突。如果确实希望创建服务端口并将其映射到主机,请指定
--服务端口
标志

(强调矿山)

这促使我尝试(并成功):

docker compose运行--服务端口测试
所有这些,
http://localhost:3838
工作正常(对于我在windows上…应该也适用于其他人,但如果不是
localhost
,请尝试
127.0.0.1


我的文件,为了测试速度稍微修改了一下,因为我没有你的
test\u应用程序

Dockerfile 来自摇滚乐/闪亮诗句的

暴露3838
CMD R——不保存-e'库(闪亮);运行示例(“01_hello”,port=3838,host=“0.0.0.0”);'
docker-compose.yml
版本:“3.2”
服务:
测试:
建造:
上下文:。
dockerfile:dockerfile
重新启动:始终
图片:测试:最新
端口:
- "3838:3838"
用户:'root'

端口第一个数字是主机端口,第二个数字是集装箱端口。当你是康妮的时候