diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..0ae0591
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,3 @@
+**
+!/ConversaoPeso.sln
+!/ConversaoPeso.Web/**
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..3b412cf
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,23 @@
+# image build
+FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
+
+LABEL vendor=Rogerio\ dos\ Santos\ Silva \
+ email=roger7331@gmail.com \
+ version="1.0" \
+ release-date="2021-11-03"
+
+WORKDIR /src
+
+COPY *.sln .
+COPY ConversaoPeso.Web/*.csproj ./ConversaoPeso.Web/
+RUN dotnet restore
+
+COPY ConversaoPeso.Web/. ./ConversaoPeso.Web/
+WORKDIR /src/ConversaoPeso.Web
+RUN dotnet publish -c release -o /app --no-restore
+
+# image production
+FROM mcr.microsoft.com/dotnet/aspnet:5.0 as production
+WORKDIR /app
+COPY --from=build /app ./
+ENTRYPOINT ["dotnet", "ConversaoPeso.Web.dll"]
\ No newline at end of file
diff --git a/README.md b/README.md
index 9cdeec2..585cefe 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,115 @@
-# conversao-peso
\ No newline at end of file
+# Docker + ASP.Net
+
+
+Claro, porque não? Neste exemplo vamos conteirizar uma aplicação ASP.Net.
+Para testar esta aplicação dentro de um contêiner, vocẽ precisa ter o Docker instalado em sua máquina.
+Caso não deseje saber sobre o arquivo de conteinerização **Dockerfile**, vá direto para a sessão Testando a aplicação.
+
+## Dockerfile
+
+A grosso modo, entenda o Dockerfile como uma receita que será utilizada para gerar o contêiner.
+
+Como as linguagens suportadas pela plataforma “_.net_” são compiladas, vamos usar uma imagem intermediária para compilar e finalizar nossa imagem com apenas o necessário para executar a aplicação.
+
+Então, vamos à imagem de compilação. Vamos indicar a imagem que utilizaremos para compilar nossa aplicação. Para isto utilizaremos o comando ``` FROM ``` e o nome da imagem, vamos atribuir o alias build a esta imagem.
+```docker
+FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
+```
+Vamos definir o diretório de trabalho. O comando abaixo, cria a pasta "_src_", caso ela não exista e nos move para dentro da pasta.
+```docker
+WORKDIR /src
+```
+Copie os arquivos da aplicação para o nosso diretório de trabalho.
+
+```docker
+COPY *.sln .
+COPY ConversaoPeso.Web/*.csproj ./ConversaoPeso.Web/
+```
+Restaurando as dependências e as ferramentas do projeto.
+
+```docker
+RUN dotnet restore
+```
+Agora vamos copiar os scripts da aplicação para a pasta _“/src/ConversaoPeso.Web”_, alterar o diretório de trabalho para o diretório da aplicação e compilar todo o projeto.
+
+```docker
+COPY ConversaoPeso.Web/. ./ConversaoPeso.Web/
+WORKDIR /src/ConversaoPeso.Web
+RUN dotnet publish -c release -o /app --no-restore
+```
+Note que o resultado da compilação será salvo na pasta “_/app_”
+
+Ok, a primeira fase foi concluída. Agora vamos a imagem de produção. Vamos utilizar a imagem “**aspnet:5.0**” que é mais leve e é o suficiente para executar nossa aplicação.
+```docker
+FROM mcr.microsoft.com/dotnet/aspnet:5.0 as production
+```
+Definir o diretório de trabalho e copiar a aplicação compilada na imagem “_build_” para a imagem “_production_”.
+```docker
+WORKDIR /app
+COPY --from=build /app ./
+```
+Para finalizar, vamos incluir o start imutável.
+
+```docker
+ENTRYPOINT ["dotnet", "ConversaoPeso.Web.dll"]
+```
+O arquivo final será este:
+```docker
+# image build
+FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
+WORKDIR /src
+COPY *.sln .
+COPY ConversaoPeso.Web/*.csproj ./ConversaoPeso.Web/
+RUN dotnet restore
+
+COPY ConversaoPeso.Web/. ./ConversaoPeso.Web/
+WORKDIR /src/ConversaoPeso.Web
+RUN dotnet publish -c release -o /app --no-restore
+
+# image production
+FROM mcr.microsoft.com/dotnet/aspnet:5.0 as production
+WORKDIR /app
+COPY --from=build /app ./
+ENTRYPOINT ["dotnet", "ConversaoPeso.Web.dll"]
+```
+Ótimo, com a “receita” pronta, vamos criar nossa imagem.
+```
+docker build -t conversao-peso:v1 .
+```
+Para visualizar a imagem criada, utilize o comando abaixo
+```
+docker image ls
+```
+```
+REPOSITORY TAG IMAGE ID CREATED SIZE
+conversao-peso v1 d6ba851cae82 3 days ago 210MB
+ 22e4b12a9e52 3 days ago 647MB
+mcr.microsoft.com/dotnet/sdk 5.0 3d9edf094595 3 weeks ago 631MB
+mcr.microsoft.com/dotnet/aspnet 5.0 8102e4dcab1c 3 weeks ago 205MB
+```
+Note o tamanho das imagens, a imagem que utilizamos para compilar, a _skd:5.0_ tem 631Mb mas nossa aplicação tem apenas 210Mb, isto porque a imagem que utilizamos para executar a aplicação foi a _aspnet:5.0_ que possui 1/3 do tamanho da imagem de compilação.
+Durante o processo uma imagem sem nome foi criada, a imagem ``````, esta imagem é a imagem de compilação. Esta imagem já cumpriu o seu papel e já não é mais necessária, para eliminá-la use o comando abaixo.
+```
+docker image prune
+```
+## Criando o contêiner
+Já criamos nossa imagem, então estamos prontos para executarmos o contêiner, para isto, utilize o comando abaixo:
+```
+docker container run -d --rm --name app-aspnet -p 80:80 conversao-peso:v1
+```
+Podemos verificar se o contêiner está em sendo executado com o comando
+```
+docker container ls -a
+```
+
+## Testando a aplicação
+
+Se você seguiu as instruções acima, a aplicação pode ser acessada no em http://localhost. Caso contrário, baixe o arquivo start.sh e de permissão de execução em sua máquina com o comando
+```
+sudo chmod +x start.sh
+```
+E execute com o comando
+```
+./start.sh
+```
+Isto irá baixar a imagem da aplicação para sua máquina e executar o contêiner. Agora é só testar a aplicação em http://localhost
\ No newline at end of file
diff --git a/start.sh b/start.sh
new file mode 100755
index 0000000..5bf091b
--- /dev/null
+++ b/start.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+[ -n "$(docker images -q rogeriostos/conversao-peso:v1)" ] || echo docker pull rogeriostos/conversao-peso:v1
+
+if [ ! "$(docker ps -q -f name=myappasp)" ]; then
+ if [ "$(docker ps -aq -f status=exited -f name=myappasp)" ]; then
+ # cleanup
+ docker rm -f myappasp
+ fi
+ # run your container
+ docker container run -d --rm --name myappasp -p 80:80 rogeriostos/conversao-peso:v1
+fi
+[ -z "$(docker ps -q -f name=myappasp)" ] || echo "\nAcesse a aplicação em http://localhost/"
+echo "\n"
\ No newline at end of file