img

26 самых известных команд Docker (с примерами)

Docker - это система контейнеризации, которая позволяет упаковывать и запускать приложение вместе со всеми его зависимостями внутри контейнера. Когда вы работаете с Docker, вы должны знать некоторые команды. Эта статья всецело посвящена именно этому.

icon strelka icons icons

узнай больше на курсе

DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
Python программист с нуля
Стань разработчиком на одном из самых популярных языков программирования - Python
Подробнее о курсе

1. Поиск версии

Одна из первых вещей, которую вам нужно знать, это то, как найти версию Docker, установленного на вашем компьютере. 

geekflare@geekflare:/home/geekflare$ docker --version

Docker version 18.09.6, build 481bc77

2. Загрузка образа

Допустим, что вы хотите получить образ Docker из Dockerhub (репозиторий Docker). На следующем примере мы показали, как можно извлечь образ HTTP-сервера Apache.

geekflare@geekflare:/home/geekflare$ docker pull httpd
Using default tag: latest
latest: Pulling from library/httpd
f5d23c7fed46: Pull complete
b083c5fd185b: Pull complete
bf5100a89e78: Pull complete
98f47fcaa52f: Pull complete
622a9dd8cfed: Pull complete
Digest: sha256:8bd76c050761610773b484e411612a31f299dbf7273763103edbda82acd73642
Status: Downloaded newer image for httpd:latest
geekflare@geekflare:/home/geekflare$

3. Образы

Вы можете получить список всех образов Docker, загруженных в систему, с такой информацией, как тег/идентификатор образа/размер и т.д.

geekflare@geekflare:/home/geekflare$ docker images
REPOSITORY          TAG            IMAGE ID        CREATED             SIZE
httpd              latest        ee39f68eb241     2 days ago          154MB
hello-world        latest        fce289e99eb9    6 months ago        1.84kB
sequenceiq          2.7          789fa0a3b911    4 years ago         1.76GB
/hadoop-docker

4. Запуск

Вы можете запустить образ Docker, на который вы ссылаетесь в команде. Эта команда создаст контейнер Docker, в которой запуститься HTTP-сервер Apache.

geekflare@geekflare:/home/geekflare$ docker run -it -d httpd
09ca6feb6efc0578951a3e2557ed5855b2edda39a795d9703eb54d975930fe6e

5. Какие контейнеры запущены?

Команда ps перечисляет все контейнеры Docker, которые запущены, со всеми сопутствующими сведениями о них. 

geekflare@geekflare:/home/geekflare$ docker ps
CONTAINER ID     IMAGE           COMMAND           CREATED         
09ca6feb6efc     httpd     "httpd-foreground"   36 seconds ago      
STATUS              PORTS            NAMES
Up 33 seconds       80/tcp       suspicious_bell

Как вы можете видеть, в этом контейнере Docker запущен сервер Apache.

6. ps –a

Перечисляет все контейнеры Docker, которые были запушены, из которых вы вышли или которые вы остановили, со всеми сопутствующими сведениями о них.

geekflare@geekflare:/home/geekflare$ docker ps -a
CONTAINER ID        IMAGE                                COMMAND                  
09ca6feb6efc        httpd                            "httpd-foreground"  
2f6fb3381078        sequenceiq/hadoop-docker:2.7.0   "/etc/bootstrap.sh -d"   
9f397feb3a46        sequenceiq/hadoop-docker:2.7.0   "/etc/bootstrap.sh -…"   
9b6343d3b5a0        hello-world                      "/hello"                 
CREATED           STATUS                     PORTS              NAMES      
51 seconds ago    Up 49 seconds              80/tcp         suspicious_bell
2 weeks ago       Exited (137) 9 days                       quizzical_raman   
2 weeks ago       Exited (255) 2 weeks ago   2122/tcp,   determined_ritchie                                                                                                                                                                                                                                                                                                                                                                                  
8030-8033/tcp, 
8040/tcp, 
8042/tcp, 
8088/tcp, 
19888/tcp, 
49707/tcp, 
50010/tcp, 
50020/tcp, 
50070/tcp, 
50075/tcp, 
50090/tcp   
2 weeks ago       Exited (0) 2 weeks ago                     peaceful_mclean                                                                                                                          

7. exec

Вы можете получить доступ к контейнеру Docker и запустить команды внутри этого контейнера. В данном примере я пытаюсь получить доступ к контейнеру сервера Apache.

Для того, чтобы выйти из контейнера, введите exit и нажмите Enter.

geekflare@geekflare:/home/geekflare$ docker exec -it 09ca6feb6efc bash
root@09ca6feb6efc:/usr/local/apache2# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs                modules
root@09ca6feb6efc:/usr/local/apache2#

8. Удаление контейнера

Вы можете удалить контейнер Docker, указав идентификатор контейнера в команде.

geekflare@geekflare:/home/geekflare$ docker rm 9b6343d3b5a0
9b6343d3b5a0
Запустите следующую команду для того, чтобы проверить, был ли удален контейнер.
geekflare@geekflare:/home/geekflare$ docker ps -a
CONTAINER ID        IMAGE                            COMMAND                  
09ca6feb6efc        httpd                            "httpd-foreground"       
2f6fb3381078        sequenceiq/hadoop-docker:2.7.0   "/etc/bootstrap.sh -d"   
9f397feb3a46        sequenceiq/hadoop-docker:2.7.0   "/etc/bootstrap.sh -…"   
CREATED              STATUS                    PORTS         NAMES    
About a minute ago   Up About a minute         80/tcp        suspicious_bell    
2 weeks ago          Exited (137) 9 days ago                 quizzical_raman   
2 weeks ago          Exited (255) 2 weeks ago   2122/tcp, determined_ritchie                                                                                                                                                                                                                                                                                                                                                                           
8030-8033/tcp, 
8040/tcp, 
8042/tcp, 
8088/tcp, 
19888/tcp, 
49707/tcp, 
50010/tcp, 
50020/tcp, 
50070/tcp, 
50075/tcp, 
50090/tcp   

9. Удаление образа

Вы можете удалить образ Docker, указав идентификатор образа в команде. 

geekflare@geekflare:/home/geekflare$ docker rmi fce289e99eb9
Untagged: hello-world:latest
Untagged: hello-world@sha256:41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8
Deleted: sha256:fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e
Deleted: sha256:af0b15c8625bb1938f1d7b17081031f649fd14e6b233688eea3c5483994a66a3
geekflare@geekflare:/home/geekflare$

10. Перезапуск контейнера

Вы можете перезапустить контейнер Docker, указав идентификатор контейнера в команде.

geekflare@geekflare:/home/geekflare$ docker restart 09ca6feb6efc
09ca6feb6efc

Запустите следующую команду и проверьте параметр STATUS для того, чтобы убедиться, что контейнер был запущен должным образом.

geekflare@geekflare:/home/geekflare$ docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             09ca6feb6efc        httpd               "httpd-foreground"   6 minutes ago       
STATUS              PORTS               NAMES
Up 9 seconds        80/tcp              suspicious_bell

11. Остановка контейнера 

Вы можете остановить контейнер Docker, указав идентификатор контейнера в команде.

geekflare@geekflare:/home/geekflare$ docker stop 09ca6feb6efc
09ca6feb6efc

Запустите следующую команду для того, чтобы проверить, контейнер все еще работает или был остановлен. 

geekflare@geekflare:/home/geekflare$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

12. Запуск контейнера

Эта команда запускает контейнер Docker, идентификатор которого был указан в ней.

geekflare@geekflare:/home/geekflare$ docker start 09ca6feb6efc
09ca6feb6efc

Запустите следующую команду для того, чтобы проверить, запустился ли контейнер. 

geekflare@geekflare:/home/geekflare$ docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             
09ca6feb6efc        httpd               "httpd-foreground"   8 minutes ago       
STATUS              PORTS               NAMES
Up 3 seconds        80/tcp              suspicious_bell

13. Уничтожение контейнера

Эта команда моментально прекращает работу контейнера, а команда stop останавливает работу контейнера корректно – в этом и есть разница между командами kill и stop.

geekflare@geekflare:/home/geekflare$ docker kill 09ca6feb6efc
09ca6feb6efc

Запустите следующую команды для того, чтобы убедиться, что контейнер был уничтожен.

geekflare@geekflare:/home/geekflare$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

14. Фиксация изменений

Вы можете сохранить новый образ Docker в локальной системе, указав идентификатор контейнера в команде. В примере ниже geekflare – это имя пользователя, а httpd_image – это имя образа. 

geekflare@geekflare:/home/geekflare$ docker commit 09ca6feb6efc geekflare/httpd_image
sha256:d1933506f4c1686ab1a1ec601b1a03a17b41decbc21d8acd893db090a09bb31c

15. Вход в систему

Вы можете войти в систему Dockerhub. Перед входом в систему у вас запросят учетные данные.

geekflare@geekflare:/home/geekflare$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: geekflare
Password:
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded

16. Добавление образа

Вы можете загрузить образ Docker в Dockerhub, указав имя образа в команде.

geekflare@geekflare:/home/geekflare$ docker push geekflare/httpd_image
The push refers to repository [docker.io/geekflare/httpd_image]
734d9104a6a2: Pushed
635721fc6973: Mounted from library/httpd
bea448567d6c: Mounted from library/httpd
bfaa5f9c3b51: Mounted from library/httpd
9d542ac296cc: Mounted from library/httpd
d8a33133e477: Mounted from library/httpd
latest: digest: sha256:3904662761df9d76ef04ddfa5cfab764b85e3eedaf10071cfbe2bf77254679ac size: 1574

17. Сеть Docker

С помощью следующей команды вы можете получить всю сетевую информацию в рамках кластера.

geekflare@geekflare:/home/geekflare$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
85083e766f04        bridge              bridge              local
f51d1f3379e0        host                host                local
5e5d9a192c00        none                null                local

Кроме того, есть несколько других команд, связанных с сетью Docker.

geekflare@geekflare:/home/geekflare$ docker network
Usage:  docker network COMMAND
Manage networks
Commands:
connect     Connect a container to a network
create      Create a network
disconnect  Disconnect a container from a network
inspect     Display detailed information on one or more networks
ls          List networks
prune       Remove all unused networks
rm          Remove one or more networks
Run 'docker network COMMAND --help' for more information on a command.

18. Информация о Docker

Вы можете получить подробную информацию о Docker, который установлен в вашей системе, в том числе версию ядра, количество контейнеров и образов и т.д.

geekflare@geekflare:/home/geekflare$ docker info
Containers: 3
Running: 1
Paused: 0
Stopped: 2
Images: 3
Server Version: 18.09.6
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
init version: fec3683
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.18.0-25-generic
Operating System: Ubuntu 18.10
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 4.982GiB
Name: geekflare
ID: RBCP:YGAP:QG6H:B6XH:JCT2:DTI5:AYJA:M44Z:ETRP:6TO6:OPAY:KLNJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: geekflare
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine

19. Копирование файла

Вы можете скопировать файл из контейнера Docker в локальную систему. 

В данном примере я копирую файл http.pid, который расположен внутри контейнера с идентификатором 09ca6feb6efc, в /home/geekflare/.

geekflare@geekflare:/home/geekflare$ sudo docker cp 09ca6feb6efc:/usr/local/apache2/logs/httpd.pid /home/geekflare/
[sudo] password for geekflare:

Запустите следующую команду для того, чтобы убедиться, что файл был скопирован.

geekflare@geekflare:/home/geekflare$ ls
Desktop  Documents  example  examples.desktop  httpd.pid  nginx_new.yml  nginx.yml

20. Проверка истории

Можно просмотреть историю образа Docker, указав его имя в команде.

geekflare@geekflare:/home/geekflare$ docker history httpd
IMAGE               CREATED             CREATED BY                  
ee39f68eb241        2 days ago          /bin/sh -c #(nop)  CMD ["httpd-
foreground"]    
<missing>           2 days ago          /bin/sh -c #(nop)  EXPOSE 80                   
<missing>           2 days ago          /bin/sh -c #(nop) COPY 
file:c432ff61c4993ecd…   
<missing>           4 days ago          /bin/sh -c set -eux;
savedAptMark="$(apt-m… 
<missing>           4 days ago          /bin/sh -c #(nop)  ENV HTTPD_PATCHES=          
<missing>           4 days ago          /bin/sh -c #(nop)  ENV 
HTTPD_SHA256=b4ca9d05… 
<missing>           4 days ago          /bin/sh -c #(nop)  ENV
HTTPD_VERSION=2.4.39   
<missing>           4 days ago          /bin/sh -c set -eux;  apt-get update;
apt-g…
<missing>           4 days ago          /bin/sh -c #(nop) WORKDIR
/usr/local/apache2
<missing>           4 days ago          /bin/sh -c mkdir -p "$HTTPD_PREFIX"
&& chow…
<missing>           4 days ago          /bin/sh -c #(nop)  ENV
PATH=/usr/local/apach…
<missing>           4 days ago          /bin/sh -c #(nop)  ENV
HTTPD_PREFIX=/usr/loc…
<missing>           5 days ago          /bin/sh -c #(nop)  CMD ["bash"]                
<missing>           5 days ago          /bin/sh -c #(nop) ADD
file:71ac26257198ecf6a…
SIZE      COMMENT       
0B
0B
138B
49.1B
0B
0B
0B
35.4B
0B
0B
0B
0B
0B
69.2B                       

21. Проверка журналов

Можно просмотреть журналы контейнера Docker, указав идентификатор контейнера в команде.

geekflare@geekflare:/home/geekflare$ docker logs 09ca6feb6efc
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Mon Jul 15 14:01:55.400472 2019] [mpm_event:notice] [pid 1:tid 140299791516800] AH00489: Apache/2.4.39 (Unix) configured -- resuming normal operations
[Mon Jul 15 14:01:55.400615 2019] [core:notice] [pid 1:tid 140299791516800] AH00094: Command line: 'httpd -D FOREGROUND'
[Mon Jul 15 14:08:36.798229 2019] [mpm_event:notice] [pid 1:tid 140299791516800] AH00491: caught SIGTERM, shutting down
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Mon Jul 15 14:08:38.259870 2019] [mpm_event:notice] [pid 1:tid 139974087980160] AH00489: Apache/2.4.39 (Unix) configured -- resuming normal operations
[Mon Jul 15 14:08:38.260007 2019] [core:notice] [pid 1:tid 139974087980160] AH00094: Command line: 'httpd -D FOREGROUND'
[Mon Jul 15 14:09:01.540647 2019] [mpm_event:notice] [pid 1:tid 139974087980160] AH00491: caught SIGTERM, shutting down
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Mon Jul 15 14:10:43.782606 2019] [mpm_event:notice] [pid 1:tid 140281554879616] AH00489: Apache/2.4.39 (Unix) configured -- resuming normal operations
[Mon Jul 15 14:10:43.782737 2019] [core:notice] [pid 1:tid 140281554879616] AH00094: Command line: 'httpd -D FOREGROUND'
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Mon Jul 15 14:14:08.270906 2019] [mpm_event:notice] [pid 1:tid 140595254346880] AH00489: Apache/2.4.39 (Unix) configured -- resuming normal operations
[Mon Jul 15 14:14:08.272628 2019] [core:notice] [pid 1:tid 140595254346880] AH00094: Command line: 'httpd -D FOREGROUND'

22. Поиск образа

Вы можете найти образ Docker в Dockerhub, указав его имя в команде.

geekflare@geekflare:/home/geekflare$ docker search hadoop
NAME                             DESCRIPTION                                     
sequenceiq/hadoop-docker         An easy way to try Hadoop                       
uhopper/hadoop                   Base Hadoop image with dynamic
configuration…
harisekhon/hadoop                Apache Hadoop (HDFS + Yarn, tags 2.2 - 2.8)     
bde2020/hadoop-namenode          Hadoop namenode of a hadoop cluster             
kiwenlau/hadoop                  Run Hadoop Cluster in Docker Containers 
izone/hadoop                     Hadoop 2.8.5 Ecosystem fully distributed,
Ju…
uhopper/hadoop-namenode          Hadoop namenode                                 
bde2020/hadoop-datanode          Hadoop datanode of a hadoop cluster             
singularities/hadoop             Apache Hadoop                                   
uhopper/hadoop-datanode          Hadoop datanode                                 
harisekhon/hadoop-dev            Apache Hadoop (HDFS + Yarn) + Dev Tools + 
Gi…
STARS               OFFICIAL            AUTOMATED
611                                     [OK]
98                                      [OK]
54                                      [OK]
22                                      [OK]
19                                      [OK]
14                                      [OK]
9                                       [OK]
9                                       [OK]
8                                       [OK]
7                                       [OK]
6                                       [OK]

23. Обновление конфигурации

Вы можете обновить конфигурацию контейнера. Ниже представлены все параметры обновления.

geekflare@geekflare:/home/geekflare$ docker update --help
Usage:  docker update [OPTIONS] CONTAINER [CONTAINER...]
Update configuration of one or more containers
Options:
--blkio-weight uint16        Block IO (relative weight), between 10 and 1000, or 0 to disable
(default 0)
--cpu-period int             Limit CPU CFS (Completely Fair Scheduler) period
--cpu-quota int              Limit CPU CFS (Completely Fair Scheduler) quota
--cpu-rt-period int          Limit the CPU real-time period in microseconds
--cpu-rt-runtime int         Limit the CPU real-time runtime in microseconds
-c, --cpu-shares int             CPU shares (relative weight)
--cpus decimal               Number of CPUs
--cpuset-cpus string         CPUs in which to allow execution (0-3, 0,1)
--cpuset-mems string         MEMs in which to allow execution (0-3, 0,1)
--kernel-memory bytes        Kernel memory limit
-m, --memory bytes               Memory limit
--memory-reservation bytes   Memory soft limit
--memory-swap bytes          Swap limit equal to memory plus swap: '-1' to enable unlimited swap
--restart string             Restart policy to apply when a container exits

Запустите следующую команду для того, чтобы обновить конфигурацию ЦП контейнера Docker, указав его идентификатор в команде.

geekflare@geekflare:/home/geekflare$ docker update -c 1 2f6fb3381078
2f6fb3381078

24. Создание тома

Вы можете создать том, который контейнер Docker будет использовать в качестве хранилища данных.

geekflare@geekflare:/home/geekflare$ docker volume create
7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0

Запустите следующую команду для того, чтобы убедиться, что том был создан.

geekflare@geekflare:/home/geekflare$ docker volume ls
DRIVER      VOLUME NAME
local       7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0

25. Установка плагина

Вы можете установить плагин Docker vieux/sshfs, установив параметр среды отладки на 1.

geekflare@geekflare:/home/geekflare$ docker plugin install vieux/sshfs DEBUG=1
Plugin "vieux/sshfs" is requesting the following privileges:
- network: [host]
- mount: [/var/lib/docker/plugins/]
- mount: []
- device: [/dev/fuse]
- capabilities: [CAP_SYS_ADMIN]
Do you grant the above permissions? [y/N] y
latest: Pulling from vieux/sshfs
52d435ada6a4: Download complete
Digest: sha256:1d3c3e42c12138da5ef7873b97f7f32cf99fb6edde75fa4f0bcf9ed277855811
Status: Downloaded newer image for vieux/sshfs:latest
Installed plugin vieux/sshfs
Run the below command to list the docker plugins.
geekflare@geekflare:/home/geekflare$ docker plugin ls
ID                  NAME                 DESCRIPTION               ENABLED
2a32d1fb95af        vieux/sshfs:latest   sshFS plugin for Docker   true

26. Выход из системы

Вы можете выйти из системы Dockerhub.

geekflare@geekflare:/home/geekflare$ docker logout
Removing login credentials for https://index.docker.io/v1/

Заключение

Надеюсь, что в настоящему моменту вы достаточно хорошо поняли, что из себя представляют команды Docker. Испробуйте эти команды в своей среде разработки или тестовой среде для того, чтобы вы могли отточить свои навыки и лучше понять, как они работают. 

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
Python программист с нуля
Стань разработчиком на одном из самых популярных языков программирования - Python
Подробнее о курсе
Онлайн-курс по кибербезопасности
Полный курс по кибербезопасности от Мерион Нетворкс - учим с нуля специалистов по информационной безопасности. Пора стать безопасником!
Подробнее о курсе
Java-разработчик с нуля
Освойте backend-разработку и программирование на Java, фреймворки Spring и Maven, работу с базами данных и API
Подробнее о курсе
Этичный хакинг
Научись работать с Kali Linux, изучи самые распространенные уязвимости, разверни виртуальную лабораторию для пентестинга
Подробнее о курсе
Еще по теме:
img
10 крутых AI промптов для быстрого решения проблем Kubernetes, CI/CD, Terraform и мониторинга
img
Наверняка ты постоянно слышишь про микросервисы. Микросервисы то, микросервисы сё, переписали все на микросервисы, развернули микросервисы в контейнерах. А че это вообще такое? Ща все объясним.
img
О том, как создать локальную DevOps-лабораторию с Docker, Kubernetes, Vagrant, Ansible и Terraform на обычном ноутбуке без затрат, смс, и прочего.
img
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии проекта. В статье рассказываем, как ее использовать.
img
Мы рассмотрим несколько простых способов, с помощью которых вы можете управлять и отслеживать логи для своих контейнеров.
ЛЕТНИЕ СКИДКИ
30%
40%
50%
До конца акции: 30 дней 24 : 59 : 59