.NET Developer Conference 2017
My presentation and samples from conference.
Samples: https://github.com/ddobric/samples/tree/master/netcore20
Presentation:https://www.slideshare.net/damirdobric/net-core-822595
Here is a short part from github samples:
How to run .NET Core application in docker container?
First, we have to publish the application for OS of the base image. Here is an example for debian auf x64 platform:
dotnet publish -r debian-x64 -f netcoreapp2.0
Then create the file with the name dockerfile and paste following code in the file:
FROM microsoft/dotnet
ARG EXE_DIR=.
WORKDIR /app
COPY $EXE_DIR/ ./
CMD ["./mydocsample"]
This defines the new image on top of the microsoft/dotnet base image. I have used microsoft/dotnet as base, but it is not required to have dotnet installed on the image, because our publish has published required framework assemblies for runtime *debian-x64 *.
As next the docker image has to be built:
docker build --build-arg EXE_DIR=./bin/Debug/netcoreapp2.0/debian-x64/publish -t ddc:3.0.
This will create the new images with name ddc and version (tag) 3.0. If you execute now
docker images
you will see following:
REPOSITORY TAG IMAGE ID CREATED SIZE
ddc 1.2 8d8e7c5186c6 43 hours ago 1.75GB
ddc <-- 3.0 ,<-- 8d8e7c5186c6 43 hours ago 1.75GB
fra 1.0 8d8e7c5186c6 43 hours ago 1.75GB
ddc 1.0 6779ba25cd4d 45 hours ago 284MB
microsoft/dotnet latest 84b39efffa19 8 days ago 1.68GB
Note the second entry in the list. It new is the image, which has been created.
To run the container with .NET Core application execute following command:
docker run 8d8e7c5186c6
To run it in the backgraound:
docker run 8d8e7c5186c6
C:\mydocsample>docker run 8d8e7c5186c6
Hello World!
Hello World!
Hello World!
Hello World!
To see running container:
docker ps
you will see the container is running:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a0f200ad8fb4 8d8e7c5186c6 "./mydocsample" 45 seconds ago Up 44 seconds adoring_kalam