我有一个带有以下 docker 文件的标准 Spring Boot 应用程序:
FROM maven:latest AS maven
WORKDIR /usr/src/app
COPY . /usr/src/app
# Compile and package the application to an executable JAR
RUN mvn package
FROM amazoncorretto:17-alpine-jdk
ARG JAR_FILE=app.jar
WORKDIR /opt/app
# Copy the jar from the maven stage to the /opt/app directory of the current stage.
COPY --from=maven /usr/src/app/target/${JAR_FILE} /opt/app/
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]
Run Code Online (Sandbox Code Playgroud)
我的application.properties文件具有与在 docker 容器中运行的 postgres 数据库的连接 spring:
# datasource
spring.datasource.url=jdbc:postgresql://db:5432/myApp?currentSchema=gpclinic&createDatabaseIfNotExist=true
spring.datasource.username=uname
spring.datasource.password=pword
Run Code Online (Sandbox Code Playgroud)
当我跑步时:
docker build -t myApp .
Run Code Online (Sandbox Code Playgroud)
由于数据库容器未运行,单元测试失败,因此我遇到了失败。
我需要运行 Postgres …
我运行 python 容器,我想连接 localhost postegresql。我尝试一些方法。但不工作。请跟我谈谈。我能怎么做 ?谢谢。
我已经在端口 5432 上运行 postegresql,创建数据库并授予用户。
运行 docker 命令
docker run --name=python3 -v ${pwd}:/code -w /code python
Run Code Online (Sandbox Code Playgroud)
蟒蛇代码
import psycopg2
def main():
#Define our connection string
conn_string = "host='localhost' dbname='testDB' user='test' password='test'"
# print the connection string we will use to connect
print ("Connecting to database\n ->{}".format(conn_string))
# get a connection, if a connect cannot be made an exception will be raised here
conn = psycopg2.connect(conn_string)
# conn.cursor will return a cursor object, you can use …Run Code Online (Sandbox Code Playgroud) 在 Docker 容器中,我正在寻找一种在主机上获取 udev 事件的方法。
使用udevadm monitor,它仅在容器中发回主机的内核事件。
问题是是否有办法检测主机的 udev 事件或将主机的事件转发到容器?
我有一个使用docker-compose创建的Docker容器。这是yml文件。
version: "3"
services:
redis:
image: "redis"
web:
image: "myimage"
ports:
- "8000:8000"
environment:
REDIS_HOST: redis
volumes:
- .:/usr/src/app
depends_on:
- "redis"
command: ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)
我的Web应用程序需要从此容器连接到本地计算机,因为我的本地计算机正在运行Docker容器的Web应用程序需要访问的另一个Web应用程序。我该怎么做呢?本地主机的web应用程序托管在其他端口(7777)上。
我已经从Docker容器内部看到了如何连接到计算机的本地主机?,并且使用“ extra_hosts”选项使它正常工作,但是我想知道是否还有另一种方法可以执行此操作?
我已经使用 docker compose 设置了 elasticsearch 和 kibana。localhost:9200elasticsearch部署在:而 kibana 部署在localhost:5601
尝试使用 docker run 部署 metricbeat 时,出现以下错误:
$ docker run docker.elastic.co/beats/metricbeat:6.3.2 setup -E setup.kibana.host=kibana:5601 -E output.elasticsearch.hosts=["localhost:9200"]
Exiting: Couldn't connect to any of the configured Elasticsearch hosts. Errors: [Error connection to Elasticsearch http://localhost:9200: Get http://localhost:9200: dial tcp [::1]:9200: connect: cannot assign requested address]
Exiting: Couldn't connect to any of the configured Elasticsearch hosts. Errors: [Error connection to Elasticsearch http://elasticsearch:9200: Get http://elasticsearch:9200: lookup elasticsearch on 192.168.65.1:53: no such host]
Run Code Online (Sandbox Code Playgroud)
我的 docker-compose.yml: …
我有一个带有 PostgreS 数据库的 Django 项目。我需要在 docker 容器中使用我的本地数据库。如何与docker容器共享机器的本地主机?我的 docker-compose.yml:
version: '3'
services:
web:
build: ./
network_mode: "host"
command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py collectstatic --noinput --i rest_framework && gunicorn orion-amr.wsgi:application --bind 0.0.0.0:8000 --workers=2"
ports:
- "${webport}:8000"
- "${pgport}:${pgport}"
env_file:
- ./.env
Run Code Online (Sandbox Code Playgroud)
Django设置.py :
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': os.environ.get('pgdatabase'),
'USER': os.environ.get('pguser'),
'PASSWORD': os.environ.get('pgpassword'),
'HOST': os.environ.get('pghostname'),
'PORT': os.environ.get('pgport'),
}
}
Run Code Online (Sandbox Code Playgroud)
我加了
listen_addresses = '*'
Run Code Online (Sandbox Code Playgroud)
到postgresql.conf文件,下面是我的pg_hba.conf …
如何从macOS上的docker容器连接到localhost mysql服务器?一种使用--add-host的方法,但这需要我传递一些名称,例如“ myhost”。macOS中有什么方法可以使从Docker容器内部对localhost的引用实际上是指Docker主机吗?
对于一个小项目,我希望Docker容器中的应用程序连接到计算机的本地主机。这个问题的答案:从Docker容器内部,如何连接到计算机的本地主机?告诉我首选的方法是--net="host"在docker run命令中使用。
我使用撰写文件来启动容器。而这个问题对我的net选项被重命名为network_mode: "host"。
这是撰写文件的开头
version: '3.6'
services:
shiny:
image: paulrougieux/eutradeflows
deploy:
restart_policy:
condition: on-failure
network_mode: "host"
ports:
- "3838:3838"
Run Code Online (Sandbox Code Playgroud)
当我启动这个文件时
sudo docker stack deploy -c stackshiny.yml shiny
Run Code Online (Sandbox Code Playgroud)
我得到错误:
Ignoring unsupported options: network_mode
Run Code Online (Sandbox Code Playgroud)
有关信息
$ sudo docker version
Client:
Version: 18.04.0-ce
Server:
Engine:
Version: 18.04.0-ce
Run Code Online (Sandbox Code Playgroud)
如何启用从Docker容器到主机上数据库的连接?
Mysql is in it's own docker-compose.yml as I want a mysql server up and running that any other php application can connect to. So I do not have php and mysql in the same docker-compose.yml. From the php application, I can connect to mysql if I use the mysql container's gateway ip address by looking it up and then hard coding it into the php application. docker inspect mysql-db. But docker will change that 172... ip address each time …
我创建了默认的 blazor 服务器端应用程序。然后添加Microsoft.AspNetCore.SignalR.Client和ChatHub类。然后编辑startup.cs文件(添加services.AddSignalR()和endpoints.MapHub<ChatHub>("/chatHub"))和index.razor页面。然后通过IIS Express运行。没关系。
然后添加docker支持并运行Docker主机。它不工作。因为只有集线器连接 StartAsync 方法不起作用。如何运行它?帮我?非常感谢你们。
错误是:
处理请求时发生未处理的异常。SocketException:无法分配请求的地址System.Net.Http.ConnectHelper.ConnectAsync(字符串主机,int端口,CancellationToken取消令牌)
HttpRequestException:无法分配请求的地址System.Net.Http.ConnectHelper.ConnectAsync(字符串主机,int端口,CancellationToken取消令牌)
索引.剃刀代码:
@code {
private HubConnection _hubConnection;
protected override async Task OnInitializedAsync()
{
_hubConnection = new HubConnectionBuilder()
.WithUrl(NavigationManager.ToAbsoluteUri("/chatHub"))
.Build();
_hubConnection.On<string, string>("ReceiveMessage", (user, message) =>
{
var encodedMsg = $"{user}: {message}";
StateHasChanged();
});
await _hubConnection.StartAsync(); // **DON'T WORK IN DOCKER HOST.**
}
}
Run Code Online (Sandbox Code Playgroud)
Docker 文件:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["BlazorApp1/BlazorApp1.csproj", "BlazorApp1/"] …Run Code Online (Sandbox Code Playgroud)