您可以使用它dotnet dev-certs https来生成与 ASP.NET 一起使用的自签名证书,如该 dockerfile 所示
FROM mcr.microsoft.com/dotnet/sdk:5.0 as build
WORKDIR /src
RUN dotnet new webapi -o app
RUN dotnet dev-certs https
RUN dotnet publish -o out app/app.csproj
ENV ASPNETCORE_URLS="https://*:443;http://*:80"
WORKDIR /app
RUN cp -r /src/out/* .
CMD ["dotnet", "app.dll"]
Run Code Online (Sandbox Code Playgroud)
不过,我想将最终图像基于 aspnet 图像。所以我把它改为
FROM mcr.microsoft.com/dotnet/sdk:5.0 as build
WORKDIR /src
RUN dotnet new webapi -o app
RUN dotnet dev-certs https
RUN dotnet publish -o out app/app.csproj
FROM mcr.microsoft.com/dotnet/aspnet:5.0 as final
ENV ASPNETCORE_URLS="https://*:443;http://*:80"
WORKDIR /app
COPY --from=build /src/out . …Run Code Online (Sandbox Code Playgroud) 元分析2
\nsudo docker run --name mymet2 -it tleemcjr/metasploitable2:latest sh -c "/bin/services.sh && bash"\nRun Code Online (Sandbox Code Playgroud)\n出现错误
\n\n\ndocker:守护程序的错误响应:冲突。容器名称\n“/mymet2”已被容器\n“0a545a9ae45d56909fe081b52f8f2dcad524873ee4de8e73a816d60bad783852”使用。\n您必须删除(或重命名)该容器才能重用该名称。\n 请参阅“docker run --help”。
\n
\xe2\x94\x94\xe2\x94\x80$ sudo docker ps -a 125 \xe2\xa8\xaf\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\ndaa5b8f6fe52 nginx "/docker-entrypoint.\xe2\x80\xa6" 19 minutes ago Created 0.0.0.0:80->80/tcp webserver\nc376d4818c32 tleemcjr/metasploitable2 "sh -c '/bin/service\xe2\x80\xa6" 2 hours ago Created adro\nbfa436743168 tleemcjr/metasploitable2 "sh -c '/bin/service\xe2\x80\xa6" 2 hours ago Created mymet1\nd8ffd4cf005f tleemcjr/metasploitable2 "sh -c '/bin/service\xe2\x80\xa6" 2 hours ago Created mymet12\ne33cf540d3fa tleemcjr/metasploitable2:latest "sh -c '/bin/service\xe2\x80\xa6" 2 hours ago …Run Code Online (Sandbox Code Playgroud) 当我构建容器并检查应该被忽略的文件时,大多数文件都没有被忽略。
这是我的文件夹结构。
Root/
data/
project/
__pycache__/
media/
static/
app/
__pycache__/
migrations/
templates/
.dockerignore
.gitignore
.env
docker-compose.yml
Dockerfile
requirements.txt
manage.py
Run Code Online (Sandbox Code Playgroud)
假设我想忽略__pycache__& data(创建容器时将使用命令创建数据docker-compose up)文件夹和.gitignore&.env文件。
我将在下一个.dockerignore文件中忽略这些
.git
.gitignore
.docker
*/__pycache__/
**/__pycache__/
.env/
.venv/
venv/
data/
Run Code Online (Sandbox Code Playgroud)
最终的结果是只有git&.env文件被忽略了。数据文件夹并未被忽略,但无法从容器访问。而且__pycache__文件夹也没有被忽略。
这是 docker 文件。
docker-compose.yml
version: "3.8"
services:
app:
build: .
volumes:
- .:/django-app
ports:
- 8000:8000
command: /bin/bash -c "sleep 7; python manage.py migrate; python manage.py runserver 0.0.0.0:8000"
container_name: app-container …Run Code Online (Sandbox Code Playgroud)