Introduction aux conteneurs

Brought by: OpenClassrooms

Overview

Le cloud computing apporte de nombreuses fonctionnalités au monde de l'informatique, pour l'utilisateur tout comme le développeur. Mais pour ce dernier, il introduit également des problématiques nouvelles, ou exacerbe celles déjà existantes, notamment en matière de durabilité des applications.

Ce cours en deux parties vous permettra de découvrir comment, dans un esprit très "DevOps", les conteneurs vont vous permettre d'optimiser le cycle de vie d'applications à l'échelle du cloud, en simplifiant la gestion de configuration, le déploiement, et le passage à l'échelle. Après une introduction à la notion de conteneur, nous présentons le fonctionnement de Docker, puis des conteneurs Windows qui seront disponibles dans Windows Server 2016. Ces notions sont illustrées par des démonstrations pratiques, grâce auxquelles vous pourrez saisir tout l'impact des conteneurs sur le développement.

Envie d'en savoir plus ? Alors rejoignez dès maintenant Stanislas Quastana et Pascal Sauliere, auteurs de ce cours, pour tout comprendre sur les conteneurs !

Syllabus

Part #1 - Qu'est-ce qu'un conteneur ?
1. Introduction
2. Quel usage pour les conteneurs ?
3. Un peu d'histoire sur les conteneurs
4. Machines virtuelles vs conteneurs
5. Docker
6. Client et moteur Docker
7. Images Docker
8. Dockerfile
9. Docker Hub
10. Docker en résumé
11. Docker et Microsoft
12. Docker dans le Marketplace d'Azure
13. Applications en conteneur dans le Marketplace d'Azure
14. Démo docker sur Linux
15. Partenariat Microsoft - Docker
Quiz: Quiz 1

Part #2 - Les conteneurs Windows
1. Introduction
2. Conteneurs dans Windows Server 2016
3. Écosystème conteneurs
4. Images de conteneurs
5. Dépôt d'images
6. Processus de développement
7. Cycle de vie des conteneurs
8. Options de déploiement des conteneurs
9. Conteneurs Windows ou conteneurs Hyper-V ?
10. Windows Container OS
11. Administration des conteneurs Windows
12. Démo : conteneurs dans Azure
13. Démo : conteneurs Windows
14. Open Container Initiative
Quiz: Quiz 2

Introduction aux conteneurs
Go to course

Introduction aux conteneurs

Brought by: OpenClassrooms

  • OpenClassrooms
  • Free
  • French
  • Certificate Available
  • Available at any time
  • All
  • N/A
8.1.2PHP Version201msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (119ms)
    • Application (80.96ms)
    • 1 x Booting (59.45%)
      119.41ms
      1 x Application (40.31%)
      80.96ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed5.73ms
      • select * from `courses` where `slug_en` = 'introduction-aux-conteneurs' limit 1
        4.54ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. introduction-aux-conteneurs
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-09 12:48:50' where `id` = 1923
        300μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-09 12:48:50
        • 1. 1923
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (10)
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (36) and `providers`.`deleted_at` is null
        260μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 1914 limit 1
        240μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1914
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        bvYKSvLyOazHnrNbOdGEhKxzDWHn4ZqiTrI59FB9
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/introduction-aux-conteneurs" ]
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/introduction-aux-conteneurs
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "priority" => array:1 [ 0 => "u=0, i" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "18.221.150.61" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "18.221.150.61" ] "cf-ray" => array:1 [ 0 => "92da1efbad48e253-ORD" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_PRIORITY" => "u=0, i" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "18.221.150.61" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "18.221.150.61" "HTTP_CF_RAY" => "92da1efbad48e253-ORD" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "28848" "REMOTE_ADDR" => "172.70.100.223" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/introduction-aux-conteneurs" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1744202930.7953 "REQUEST_TIME" => 1744202930 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Wed, 09 Apr 2025 12:48:50 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IndHWWU2c3BLN2QyU0taQnIwdDB6cEE9PSIsInZhbHVlIjoidnVER1ArV1djemtFYmVhQmk1U3MxaUZTYk5HQjdXcFlFOUQ0UzAxTmhKdWw2dWwxUTU4ajBrRnpSNENtMnRGV0dtZis0V2xJK3d0SnpRMlF6c2JHNHcwdzkzSnFHR01wV2ozaHF3M2h5OFI0VW84UnZMOTJ5cDRweHlibURrOUoiLCJtYWMiOiI4NTc2NzY2NjA2NGIxZDc5OTg0ODA2YzhjZGVlZGZlODJiM2MyYzYxMWU2ZWVhNTlhNzMzMDRkYTIzZTAxNTJmIiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 14:48:50 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IndHWWU2c3BLN2QyU0taQnIwdDB6cEE9PSIsInZhbHVlIjoidnVER1ArV1djemtFYmVhQmk1U3MxaUZTYk5HQjdXcFlFOUQ0UzAxTmhKdWw2dWwxUTU4ajBrRnpSNENtMnRGV0dtZis0V" 1 => "laravel_session=eyJpdiI6InNhbnAvNlkrSk91QmkycC9ScFNDQlE9PSIsInZhbHVlIjoiZUd6ZTRUeWRWQTR4RnBaTTdjRlBBOUxYSW96WGZUYVZqRkphRVp4R3cxWkJIcDRpMjVpYk42dGlQTDVaT3pETlRQVDkwTUE5Tko3SHc4bDQ0RmhwaE0rWHJ6VzRiaGZpTkxlUEJHNFJLSEwvYzA3U1hSWm0rVTU5SU9hR1lhOXUiLCJtYWMiOiI3ODg2NWUzNWUwMjNhZmI1MDllNWQyODJmMjM3YzM3MmI0OTg2MTMxYTBlNGZjNDU4ZWNmMzEwNjVlYTlhY2NiIiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 14:48:50 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InNhbnAvNlkrSk91QmkycC9ScFNDQlE9PSIsInZhbHVlIjoiZUd6ZTRUeWRWQTR4RnBaTTdjRlBBOUxYSW96WGZUYVZqRkphRVp4R3cxWkJIcDRpMjVpYk42dGlQTDVaT3pETlRQ" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IndHWWU2c3BLN2QyU0taQnIwdDB6cEE9PSIsInZhbHVlIjoidnVER1ArV1djemtFYmVhQmk1U3MxaUZTYk5HQjdXcFlFOUQ0UzAxTmhKdWw2dWwxUTU4ajBrRnpSNENtMnRGV0dtZis0V2xJK3d0SnpRMlF6c2JHNHcwdzkzSnFHR01wV2ozaHF3M2h5OFI0VW84UnZMOTJ5cDRweHlibURrOUoiLCJtYWMiOiI4NTc2NzY2NjA2NGIxZDc5OTg0ODA2YzhjZGVlZGZlODJiM2MyYzYxMWU2ZWVhNTlhNzMzMDRkYTIzZTAxNTJmIiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 14:48:50 GMT; path=/XSRF-TOKEN=eyJpdiI6IndHWWU2c3BLN2QyU0taQnIwdDB6cEE9PSIsInZhbHVlIjoidnVER1ArV1djemtFYmVhQmk1U3MxaUZTYk5HQjdXcFlFOUQ0UzAxTmhKdWw2dWwxUTU4ajBrRnpSNENtMnRGV0dtZis0V" 1 => "laravel_session=eyJpdiI6InNhbnAvNlkrSk91QmkycC9ScFNDQlE9PSIsInZhbHVlIjoiZUd6ZTRUeWRWQTR4RnBaTTdjRlBBOUxYSW96WGZUYVZqRkphRVp4R3cxWkJIcDRpMjVpYk42dGlQTDVaT3pETlRQVDkwTUE5Tko3SHc4bDQ0RmhwaE0rWHJ6VzRiaGZpTkxlUEJHNFJLSEwvYzA3U1hSWm0rVTU5SU9hR1lhOXUiLCJtYWMiOiI3ODg2NWUzNWUwMjNhZmI1MDllNWQyODJmMjM3YzM3MmI0OTg2MTMxYTBlNGZjNDU4ZWNmMzEwNjVlYTlhY2NiIiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 14:48:50 GMT; path=/; httponlylaravel_session=eyJpdiI6InNhbnAvNlkrSk91QmkycC9ScFNDQlE9PSIsInZhbHVlIjoiZUd6ZTRUeWRWQTR4RnBaTTdjRlBBOUxYSW96WGZUYVZqRkphRVp4R3cxWkJIcDRpMjVpYk42dGlQTDVaT3pETlRQ" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "bvYKSvLyOazHnrNbOdGEhKxzDWHn4ZqiTrI59FB9" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/introduction-aux-conteneurs" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]