{"id":543,"date":"2023-11-16T14:59:17","date_gmt":"2023-11-16T17:59:17","guid":{"rendered":"https:\/\/blog.wieczorek.com.br\/?p=543"},"modified":"2023-11-16T14:59:18","modified_gmt":"2023-11-16T17:59:18","slug":"instalando-o-docker-no-wsl2-usando-o-debian","status":"publish","type":"post","link":"https:\/\/blog.wieczorek.com.br\/index.php\/2023\/11\/16\/instalando-o-docker-no-wsl2-usando-o-debian\/","title":{"rendered":"Instalando o Docker no WSL2, usando o Debian"},"content":{"rendered":"\n<p>O Docker Engine \u00e9 o Docker nativo que roda no ambiente Linux e \u00e9 completamente suportado para WSL2. Sua instala\u00e7\u00e3o \u00e9 id\u00eantica a descrita para as pr\u00f3prias distribui\u00e7\u00f5es Linux disponibilizadas no site do\u00a0<a href=\"https:\/\/docs.docker.com\/engine\/install\/ubuntu\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"user-content--vantagens-1\"><a href=\"https:\/\/github.com\/codeedu\/wsl2-docker-quickstart#-vantagens-1\"><\/a><a><\/a>Vantagens<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Consume o m\u00ednimo de mem\u00f3ria necess\u00e1rio para rodar o Docker Daemon (servidor do Docker).<\/li>\n\n\n\n<li>\u00c9 mais r\u00e1pido ainda que com Docker Desktop, porque roda diretamente dentro da pr\u00f3pria inst\u00e2ncia do WSL2 e n\u00e3o em uma inst\u00e2ncia separada de Linux.<\/li>\n\n\n\n<li>Temos a melhor experi\u00eancia de desenvolvimento, pois podemos usar o Docker diretamente dentro do WSL 2, sem precisar de uma inst\u00e2ncia separada do Docker Desktop.<\/li>\n<\/ul>\n\n\n\n<p>O primeiro passo antes de instalar o Docker Engine pela primeira vez em uma nova m\u00e1quina, deve-se configurar o reposit\u00f3rio Docker. Depois, voc\u00ea pode instalar e atualizar o Docker a partir deste reposit\u00f3rio.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Vamos ao passo-a-passo:<\/h3>\n\n\n\n<p>1- Configure e adicione o reposit\u00f3rio do Docker na lista de sources do Debian<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Add Docker's official GPG key:\r\nsudo apt-get update\r\nsudo apt-get install ca-certificates curl gnupg apt-transport-https lsb-release\r\nsudo install -m 0755 -d \/etc\/apt\/keyrings\r\ncurl -fsSL https:\/\/download.docker.com\/linux\/debian\/gpg | sudo gpg --dearmor -o \/etc\/apt\/keyrings\/docker.gpg\r\nsudo chmod a+r \/etc\/apt\/keyrings\/docker.gpg\r\n\r\n# Add the repository to Apt sources:\r\necho \\\r\n  \"deb &#91;arch=\"$(dpkg --print-architecture)\" signed-by=\/etc\/apt\/keyrings\/docker.gpg] https:\/\/download.docker.com\/linux\/debian \\\r\n  \"$(. \/etc\/os-release &amp;&amp; echo \"$VERSION_CODENAME\")\" stable\" | \\\r\n  sudo tee \/etc\/apt\/sources.list.d\/docker.list > \/dev\/null\r\nsudo apt-get update<\/code><\/pre>\n\n\n\n<p>2- Instale os pacotes do Docker<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin<\/code><\/pre>\n\n\n\n<p>3- D\u00ea permiss\u00e3o para rodar o Docker com seu usu\u00e1rio corrente<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo usermod -aG docker $USER<\/code><\/pre>\n\n\n\n<p>4- Reiniciar o WSL via linha de comando do Windows para que n\u00e3o seja necess\u00e1rio autoriza\u00e7\u00e3o root para rodar o comando docker<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wsl --shutdown\r<\/code><\/pre>\n\n\n\n<p>5- Acessar novamente o Debian e iniciar o servi\u00e7o do Docker<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo service docker start\r<\/code><\/pre>\n\n\n\n<p>Este comando acima ter\u00e1 que ser executado toda vez que o Linux for reiniciado. Se caso o servi\u00e7o do Docker n\u00e3o estiver executando, mostrar\u00e1 esta mensagem de erro ao rodar comando\u00a0<code>docker<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Cannot connect to the Docker daemon at unix:\/\/\/var\/run\/docker.sock. Is the docker daemon running?<\/code><\/pre>\n\n\n\n<p>6- Verifique se a instala\u00e7\u00e3o foi bem-sucedida executando a imagem hello-world<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker run hello-world<\/code><\/pre>\n\n\n\n<p>Este comando baixa uma imagem de teste e a executa em um cont\u00eainer. Quando o cont\u00eainer \u00e9 executado, ele imprime uma mensagem de confirma\u00e7\u00e3o e sai.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Segui os passos de instala\u00e7\u00e3o mas o Docker n\u00e3o roda, o que eu fa\u00e7o?<\/h3>\n\n\n\n<p>Se mesmo ao iniciar o servi\u00e7o do Docker acontecer o seguinte erro ou similar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Cannot connect to the Docker daemon at unix:\/\/\/var\/run\/docker.sock. Is the docker daemon running?<\/code><\/pre>\n\n\n\n<p>Rode o comando\u00a0<code>sudo update-alternatives --config iptables<\/code>\u00a0e escolha a op\u00e7\u00e3o 1\u00a0<code>iptables-legacy<\/code><\/p>\n\n\n\n<p>Rode novamente o\u00a0<code>sudo service docker start<\/code>. Rode algum comando Docker como\u00a0<code>docker ps<\/code>\u00a0para verificar se est\u00e1 funcionando corretamente. Se n\u00e3o mostrar o erro acima, est\u00e1 ok.<\/p>\n\n\n\n<p><strong>Extra:<\/strong> <a href=\"https:\/\/github.com\/codeedu\/wsl2-docker-quickstart#iniciar-o-docker-automaticamente-no-wsl-apenas-para-windows-11\" target=\"_blank\" rel=\"noreferrer noopener\">Iniciar o Docker automaticamente no WSL (apenas para Windows 11)<\/a><\/p>\n\n\n\n<p>No Windows 11 \u00e9 poss\u00edvel especificar um comando padr\u00e3o para ser executados sempre que o WSL for iniciado, isto permite que j\u00e1 coloquemos o servi\u00e7o do docker para iniciar automaticamente. Edite o arquivo&nbsp;<code>\/etc\/wsl.conf<\/code>:<\/p>\n\n\n\n<p>Rode o comando para editar:<\/p>\n\n\n\n<p><code>sudo vim \/etc\/wsl.conf<\/code><\/p>\n\n\n\n<p>Aperte a letra&nbsp;<code>i<\/code>&nbsp;(para entrar no modo de inser\u00e7\u00e3o de conte\u00fado) e cole o conte\u00fado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;boot]\r\ncommand = service docker start<\/code><\/pre>\n\n\n\n<p>Quando terminar a edi\u00e7\u00e3o, pressione&nbsp;<code>Esc<\/code>, em seguida tecle&nbsp;<code>:<\/code>&nbsp;para entrar com o comando&nbsp;<code>wq<\/code>&nbsp;(salvar e sair) e pressione&nbsp;<code>enter<\/code>.<\/p>\n\n\n\n<p>Pronto, basta reiniciar o WSL com o comando&nbsp;<code>wsl --shutdown<\/code>&nbsp;no DOS ou PowerShell para testar. Ap\u00f3s abrir o WSL novamente, digite o comando&nbsp;<code>docker ps<\/code>&nbsp;para avaliar se o comando n\u00e3o retorna a mensagem acima:&nbsp;<code>Cannot connect to the Docker daemon at unix:\/\/\/var\/run\/docker.sock. Is the docker daemon running?<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O Docker Engine \u00e9 o Docker nativo que roda no ambiente Linux e \u00e9 completamente suportado para WSL2. Sua instala\u00e7\u00e3o \u00e9 id\u00eantica a descrita para as pr\u00f3prias distribui\u00e7\u00f5es Linux disponibilizadas no site do\u00a0Docker. Vantagens O primeiro passo antes de instalar o Docker Engine pela primeira vez em uma nova m\u00e1quina, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":544,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,389,4,332],"tags":[78,390,92,80,317],"class_list":["post-543","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvimento","category-devops","category-tecnologia","category-tecnologia-da-informacao","tag-debian","tag-docker","tag-instalacao","tag-linux","tag-wsl2"],"_links":{"self":[{"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/posts\/543","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=543"}],"version-history":[{"count":2,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/posts\/543\/revisions"}],"predecessor-version":[{"id":546,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/posts\/543\/revisions\/546"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/media\/544"}],"wp:attachment":[{"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.wieczorek.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}