Comment déployer votre application avec docker sur AWS ?

  1. Editer votre fichier Dockerfile
    [root@ip-172-31-37-139 docker]# cat Dockerfile
    FROM php:8.2-apache
    WORKDIR /data/docker
    COPY . /data/web/pp.blog/
    EXPOSE 80
    
    
  2. Créér votre image docker
    [root@ip-172-31-37-139 docker]# docker build -t my-php-app .
    [+] Building 10.8s (8/8) FINISHED                                                                                      docker:default
     => [internal] load build definition from Dockerfile                                                                             0.0s
     => => transferring dockerfile: 171B                                                                                             0.0s
     => [internal] load metadata for docker.io/library/php:8.2-apache                                                                0.6s
     => [internal] load .dockerignore                                                                                                0.0s
     => => transferring context: 2B                                                                                                  0.0s
     => [1/3] FROM docker.io/library/php:8.2-apache@sha256:e66f0f7fcb0ff2c5fdccb662896521ac69312d3f5f18973ba3fac8e77b824c10          9.8s
     => => resolve docker.io/library/php:8.2-apache@sha256:e66f0f7fcb0ff2c5fdccb662896521ac69312d3f5f18973ba3fac8e77b824c10          0.0s
     => => sha256:e66f0f7fcb0ff2c5fdccb662896521ac69312d3f5f18973ba3fac8e77b824c10 10.35kB / 10.35kB                                 0.0s
     => => sha256:ce1261c6d567efa8e3b457673eeeb474a0a8066df6bb95ca9a6a94a31e219dd3 29.77MB / 29.77MB                                 0.5s
     => => sha256:74b8f322c3ad8bb4b39e086cba63fa8d56891ef91beefcdcabd0242d7475985d 11.53kB / 11.53kB                                 0.0s
     => => sha256:70bb6b41f165fc132a739c330a5a9c36d7cf2802afa513c5022f271faed87e96 117.84MB / 117.84MB                               2.6s
     => => sha256:0dfd2b007c6c32f23367dd1101539e2f0153c90d8286302717ee4e31b307a435 3.82kB / 3.82kB                                   0.0s
     => => sha256:48ebd04f4983bbe65e67c4185e1ec3bcde92727bb40e759c0c908c67da8061b5 225B / 225B                                       0.1s
     => => sha256:945024922144282c29a6aa88270e089fd811e36be4e488ef28c166cc98d359a2 226B / 226B                                       0.2s
     => => sha256:2e432d6184b2b78c83ff23e2cb792f037e3b01d66f09cff2051d47877d15794b 4.22MB / 4.22MB                                   0.5s
     => => extracting sha256:ce1261c6d567efa8e3b457673eeeb474a0a8066df6bb95ca9a6a94a31e219dd3                                        2.0s
     => => sha256:c4f07164d4bff49b210440820f12de98d43b09b593147f17bd8b457886c9eefd 480B / 480B                                       0.6s
     => => sha256:d4f032b51ed9b861f00e3782d8dd2892abc8da6af9cfa7d21a0ee2bca2db8c17 426B / 426B                                       0.7s
     => => sha256:08a8f3c4034a4d970c604a004455d8e4ec3032a9fe9a9ee9204d360fec19e4fc 488B / 488B                                       0.8s
     => => sha256:7ba7adab300af10e637c47db3381561c12f92843a165c99aa16dca20a7f087df 12.33MB / 12.33MB                                 1.0s
     => => sha256:aecd457091159dd6b03d3fd06cc2b313344e97d5aebeb416dab36ae45ae4551a 11.46MB / 11.46MB                                 1.4s
     => => sha256:80da6eb38538300c90fc603f0f20b91644aa344ce7ddda7b4d196c6ffaf7bc11 2.46kB / 2.46kB                                   1.1s
     => => sha256:5a7c38055062139483605d08b890258311fec7f9b52d3b190c80b56439e913ae 251B / 251B                                       1.2s
     => => sha256:9dcc750708704ba428714146884f1f200117fe7cd72bcf09d8247acc56a9980f 246B / 246B                                       1.3s
     => => sha256:1f8d884fef54398fda475516682678bd45554ba28b2f3cc5efa4ec421bae67f2 891B / 891B                                       1.4s
     => => sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 32B / 32B                                         1.5s
     => => extracting sha256:48ebd04f4983bbe65e67c4185e1ec3bcde92727bb40e759c0c908c67da8061b5                                        0.0s
     => => extracting sha256:70bb6b41f165fc132a739c330a5a9c36d7cf2802afa513c5022f271faed87e96                                        5.1s
     => => extracting sha256:945024922144282c29a6aa88270e089fd811e36be4e488ef28c166cc98d359a2                                        0.0s
     => => extracting sha256:2e432d6184b2b78c83ff23e2cb792f037e3b01d66f09cff2051d47877d15794b                                        0.3s
     => => extracting sha256:d4f032b51ed9b861f00e3782d8dd2892abc8da6af9cfa7d21a0ee2bca2db8c17                                        0.0s
     => => extracting sha256:c4f07164d4bff49b210440820f12de98d43b09b593147f17bd8b457886c9eefd                                        0.0s
     => => extracting sha256:7ba7adab300af10e637c47db3381561c12f92843a165c99aa16dca20a7f087df                                        0.1s
     => => extracting sha256:08a8f3c4034a4d970c604a004455d8e4ec3032a9fe9a9ee9204d360fec19e4fc                                        0.0s
     => => extracting sha256:aecd457091159dd6b03d3fd06cc2b313344e97d5aebeb416dab36ae45ae4551a                                        0.6s
     => => extracting sha256:80da6eb38538300c90fc603f0f20b91644aa344ce7ddda7b4d196c6ffaf7bc11                                        0.0s
     => => extracting sha256:5a7c38055062139483605d08b890258311fec7f9b52d3b190c80b56439e913ae                                        0.0s
     => => extracting sha256:9dcc750708704ba428714146884f1f200117fe7cd72bcf09d8247acc56a9980f                                        0.0s
     => => extracting sha256:1f8d884fef54398fda475516682678bd45554ba28b2f3cc5efa4ec421bae67f2                                        0.0s
     => => extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1                                        0.0s
     => [internal] load build context                                                                                                0.0s
     => => transferring context: 171B                                                                                                0.0s
     => [2/3] WORKDIR /data/docker                                                                                                   0.1s
     => [3/3] COPY . /data/web/pp.blog/                                                                                              0.0s
     => exporting to image                                                                                                           0.1s
     => => exporting layers                                                                                                          0.0s
     => => writing image sha256:5cbe2eef3502a2e23a18e07b00e184e3b8928f2610399a0c2d37e1e2684256de                                     0.0s
     => => naming to docker.io/library/my-php-app                                                                                    0.0s
    
    
  3. Afficher votre image
    [root@ip-172-31-37-139 docker]# docker images
    REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
    my-php-app   latest    5cbe2eef3502   40 minutes ago   499MB
    
    
  4. Créér votre repository sur Elastic Container Registry
    [admin@ip-172-31-37-139 ~]$ aws ecr create-repository --repository-name my-php-app
    
    
  5. Connecter Docker à Elastic Container Registry
    [admin@ip-172-31-37-139 ~]$ aws ecr get-login-password --region us-east-2 | sudo docker login --username AWS --password-stdin your_aws_ID.dkr.ecr.us-east-2.amazonaws.com
    
    
  6. Pousser votre image sur Elastic Container Registry
    [admin@ip-172-31-37-139 ~]$ sudo docker tag my-php-app:latest 978105985410.dkr.ecr.us-east-2.amazonaws.com/my-php-app:latest
    
    
    [admin@ip-172-31-37-139 ~]$ sudo docker push your_aws_ID.dkr.ecr.us-east-2.amazonaws.com/my-php-app:latest 
    
  7. Ensuite vous crééz un service qui utilisera votre image pour faire touner votre application

Eninam BAGNABANA     |     Learning Notes     |     bagnadavid@yahoo.fr     |