我尝试使用以下Dockerfile
设置一个简单的dagster容器:
# For more information, please refer to https://aka.ms/vscode-docker-python
FROM --platform=linux/amd64 python:3.8-slim
# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1
# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1
ENV DAGSTER_HOME=/dagster
ENV DAGIT_HOME=0.0.0.0
# Install pip requirements
COPY requirements.txt .
RUN python -m pip install -r requirements.txt
WORKDIR /dagster
COPY ./dagster-sample /dagster
# Creates a non-root user with an explicit UID and adds permission to access the /dagster folder
# For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers
RUN adduser -u 5678 --disabled-password --gecos "" dagsteruser && chown -R dagsteruser /dagster
USER dagsteruser
EXPOSE 3000
# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
CMD ["dagit", "-p", "3000"]
关于dagster的内容,它们是原始的,我只是在我的主文件夹中创建了一个工作区,并根据documentation创建了一个dagster项目:
pip install dagster
dagster project scaffold --name my-dagster-project
该图像是通过visual studio的扩展创建的,该扩展转换为以下命令:
docker image build --pull --file '/home/user1/workspaces/dagster-sample-wrapper/Dockerfile' --tag 'dagstersamplewrapper:latest' --label 'com.microsoft.created-by=visual-studio-code' '/home/user1/workspaces/dagster-sample-wrapper'
容器通过以下命令启动:
docker run -d -p 3000:3000 -it dagstersamplewrapper
以下是正在运行的容器的内容
2022-12-26 03:32:29 2022-12-26 02:32:29 +0000 - dagster - INFO - Started Dagster code server for module dagster_sample in process 10
2022-12-26 03:32:29
2022-12-26 03:32:29 Telemetry:
2022-12-26 03:32:29
2022-12-26 03:32:29 As an open source project, we collect usage statistics to inform development priorities. For more
2022-12-26 03:32:29 information, read https://docs.dagster.io/install#telemetry.
2022-12-26 03:32:29
2022-12-26 03:32:29 We will not see or store solid definitions, pipeline definitions, modes, resources, context, or
2022-12-26 03:32:29 any data that is processed within solids and pipelines.
2022-12-26 03:32:29
2022-12-26 03:32:29 To opt-out, add the following to $DAGSTER_HOME/dagster.yaml, creating that file if necessary:
2022-12-26 03:32:29
2022-12-26 03:32:29 telemetry:
2022-12-26 03:32:29 enabled: false
2022-12-26 03:32:29
2022-12-26 03:32:29
2022-12-26 03:32:29 Welcome to Dagster!
2022-12-26 03:32:29
2022-12-26 03:32:29 If you have any questions or would like to engage with the Dagster team, please join us on Slack
2022-12-26 03:32:29
2022-12-26 03:32:29 2022-12-26 02:32:29 +0000 - dagit - INFO - Serving dagit on http://127.0.0.1:3000 in process 1
下面是我在容器中运行的wget -O- "http://127.0.0.1:3000" 2>&1
命令的输出
--2022-12-26 03:53:59-- http://127.0.0.1:3000/
Connecting to 127.0.0.1:3000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 900 [text/html]
Saving to: ‘STDOUT’
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><script type="application/json" id="initialization-data">{"pathPrefix": "", "telemetryEnabled": "True"}</script><script nonce="03fa0b7cb58d417ca2662ec5d0ed2c68">__webpack_nonce__="03fa0b7cb58d417ca2662ec5d0ed2c68"</script><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"/><link rel="icon" type="image/png" href="/favicon.png"/><link rel="icon" type="image/svg+xml" href="/favicon.svg"/><title>Dagit</title><script defer="defer" src="/static/js/main.e20f9d2d.js" nonce="03fa0b7cb58d417ca2662ec5d0ed2c68"></script><link href="/static/css/main.24e9b352.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
0K 100% 284M=0s
2022-12-26 03:53:59 (284 MB/s) - written to stdout [900/900]
我在Windows 11主机上运行wsl2
。我尝试通过我的主机浏览器中的以下URI访问dagit平台:
- localhost:3000(我知道这是错误的)
- 172.26.221.133:3000(通过ifconfig返回的WSL的IP地址)
- 172.17.0.2:3000(通过
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER ID>
找到的码头集装箱IP地址) - 192.168.1.7:3000(我找到的一些IP建议使用here)
- 192.168.99.100:3000(我找到的一些IP建议使用here)
调用http://172.17.0.2:3000
返回:The connection has timed out
,而localhost:3000
会立即返回The connection was reset
。
你能告诉我如何访问集装箱的IP地址,以及如何找到它吗?
1条答案
按热度按时间c2e8gylq1#
尝试将Dockerfile中的最后一行更改为
然后你得到了这个日志
然后在你的主机上检查(1分钟后)(!!)你需要超过512 M的内存来运行它。否则,你的容器可能会死。
网址:http://localhost:3000数据库信息
停靠文件
如何找到集装箱的IP?
通常情况下,不需要通过ip直接访问一个container,如果有多个container,并且它们必须交互,则通常使用网络https://docs.docker.com/config/containers/container-networking/
您可以设置从主机到容器
的任何端口
更多详情请点击此处:From inside of a Docker container, how do I connect to the localhost of the machine?