# 6.4 Atualizando o Servidor Web no Ambiente de Produção

Finalmente, para encerrar, resta apenas atualizar o ambiente de produção considerando a nova imagem aprovada e gerada pelo processo de CI/CD. Apesar de ilustrado aqui de forma manual, esse passo também poderia ser completamente automatizado e integrado ao CI/CD se estivéssemos utilizando a nuvem para executar nossa aplicação. AWS, Oracle, dentre outras empresas, possuem soluções específicas para se trabalhar com DevOps e Conteinerização, sendo soluções ideais para uso profissional de DevOps.

Assumindo que o sistema já havia sido colocado em execução com o comando `docker-compose up -d`&#x20;

```
$ cd ~/temp/devops-extra/cap-06
$ docker-compose up -d
Starting cap06_db_1 ... 
Starting cap06_db_1 ... done
Starting cap06_web_1 ... 
Starting cap06_web_1 ... done
Starting cap06_monitor_1 ... 
Starting cap06_monitor_1 ... done

$ docker-compose logs
...
```

A situação atual do mesmo é como apresentada abaixo:

```
$ docker ps -a
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                    NAMES
b61cd2b69a74        aurimrv/nagios-server-img   "/usr/local/bin/star…"   28 minutes ago      Up 28 minutes       0.0.0.0:80->80/tcp       cap06_monitor_1
4e9f13249bb3        aurimrv/tomcat-server-img   "catalina.sh run"        29 minutes ago      Up 28 minutes       0.0.0.0:8080->8080/tcp   cap06_web_1
18e9db762aa1        aurimrv/mysql-server-img    "docker-entrypoint.s…"   29 minutes ago      Up 29 minutes       0.0.0.0:3306->3306/tcp   cap06_db_1
```

Ou seja, o sistema está operacional com três contêineres operando normalmente. Para interromper e subir novamente apenas o Servidor Web, os seguintes comandos podem ser utilizados.

Inicialmente o contêiner referente ao Servidor Web é parado e removido. Em seguida elimina-se da máquina local a imagem salva anteriormente.

```
$ docker stop cap06_web_1
cap06_web_1

$ docker rm cap06_web_1
cap06_web_1

$ docker rmi -f $(docker images | grep tomcat | awk '{printf("%s ", $3)}')
Untagged: aurimrv/tomcat-server-img:latest
Untagged: aurimrv/tomcat-server-img@sha256:eeafad198331d2db31a0d456ce420f3cc0fe41bd37dfba8ca6ad40575208f0e6
Deleted: sha256:f05e5a08dca704855e2002c3941b9dd0f09a550e948f865d5620bfededb4f0c7
Deleted: sha256:3714a8ff5a7a6abf1c2251ed0ca0ee3f84f8bf0d21bfbc3317f16c2d3fc8b4b0
Deleted: sha256:f090ab1317004f1d2be52e4e4e90338d0d0fa27469a26ac44a32589f6c67c53c
Deleted: sha256:3d00c305ef194a0754fe70ecfa216ebc0ad707af1889f626d70302238ca00cfa
Deleted: sha256:a748c63e52ccd897ca6223bb21631355c8cdc7e3d10dd05e2cefdb7adb2eeae9
Deleted: sha256:2420fe490987b5d42f7373a08b5be4bc8ca5a0e74467f2dafb7bebf561743af5
Deleted: sha256:ac0e86280df5d162a457c51422fd5d0701a3ecd9711df4295735692fc9c9b3ca
Deleted: sha256:6cdbadf9a6cd462841ec7f4aff991f3961cb11b9687c5bfa0ffe99262892f4e8
Deleted: sha256:e6e18f9081aeacce4971dd685a7ee27b41ef8a4bf3229957d0ad5b58b399eeb1
Deleted: sha256:f4917110d4195c5ad9c7f328afcf416dc5ed1cea377a718ac1f9268c160f3943
Deleted: sha256:f40370342e4aedb1e1623924089468a7c0db1d99916759e0f981928399478fb5
Deleted: sha256:254cf71da09bbc16e304f925dee4270ac9069649dee8576423a6a77186ee0061
Deleted: sha256:3383e45b22b2b665b1a2604e375c1e7dc007c540e77d6367b1d7ba79ef0030d8
Deleted: sha256:d5d618196ec30fcdba1d210f135b4911b9dbdc79fdd729a9a9c3683a6a9b9308
Deleted: sha256:4bb57adf9037e4da45f2dbc0f84a7e9d8da6847bef3e63d09c8a9d8465f4d2c6
Deleted: sha256:5173011923d00f0fe606ecceda93ea88f17dc77e0b026df802c9aeb31bc1eac6
Deleted: sha256:9780f6d83e45878749497a6297ed9906c19ee0cc48cc88dc63827564bb8768fd
```

```
$ docker-compose up -d
Pulling web (aurimrv/tomcat-server-img:latest)...
latest: Pulling from aurimrv/tomcat-server-img
e4c3d3e4f7b0: Pull complete
101c41d0463b: Pull complete
8275efcd805f: Pull complete
751620502a7a: Pull complete
a59da3a7d0e7: Pull complete
5ad32ac1e527: Pull complete
50f250ce9768: Pull complete
621556868511: Pull complete
435fc158b2bb: Pull complete
e6136b360509: Pull complete
17e78f8c3154: Pull complete
6ad852fb545d: Pull complete
fa4aac5c4b92: Pull complete
a674cb209ef6: Pull complete
1acdc631acc2: Pull complete
8cd46f4889be: Pull complete
Digest: sha256:eeafad198331d2db31a0d456ce420f3cc0fe41bd37dfba8ca6ad40575208f0e6
Status: Downloaded newer image for aurimrv/tomcat-server-img:latest
cap06_db_1 is up-to-date
Creating cap06_web_1 ... 
Creating cap06_web_1 ... done
Recreating cap06_monitor_1 ... 
Recreating cap06_monitor_1 ... done
```

Desse modo, após parar e remover a instância anterior da imagem do Servidor Web, inicializam-se novamente os serviços com o `docker-compose up -d`. Como os Servidores de Banco de Dados e de Monitoramento não foram interrompidos, apenas o Servidor Web terá sua instância restabelecida a partir da nova imagem do Hub Docker.
