Установка Docker в Centos 7
В Centos 7 Docker устанавливается так же штатно, через официальный репозиторий. Прежде чем его подключить, убедитесь, что у вас установлен пакет yum-utils.
# yum install yum-utils
После этого подключаем репозиторий докера.
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo Loaded plugins: fastestmirror adding repo from: https://download.docker.com/linux/centos/docker-ce.repo grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo repo saved to /etc/yum.repos.d/docker-ce.repo
Теперь можно приступить к установке Docker на Centos 7.
# yum install docker-ce docker-ce-cli containerd.io
Запускаем докер и добавляем в автозагрузку.
# systemctl enable --now docker
Проверяем работу:
# systemctl status docker
Запускаем контейнер c nginx для теста.
# docker run -d -p 80:80 --restart=always --name nginx-proxy nginx
Убеждаемся, что все запущено и корректно работает.
# docker ps # ss -tulnp
На этом установка Docker на Centos 7 закончена. Для верности можете в браузере проверить, что nginx запущен и работает.
Установка docker-compose на Centos
Зачастую для работы с докером требуется также docker-compose. Он позволяет быстро запускать проекты, состоящие из нескольких контейнеров. По своей сути docker-compose просто скрипт на python. Так что для его работы нужен собственно сам скрипт и некоторые компоненты python. Последнюю версию скрипта можно посмотреть в репозитории на github - https://github.com/docker/compose/releases/. В моем случае это 1.27.4.
Устанавливаем docker-compose на Centos.
# curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose
Делаем файл исполняемым и на всякий случай добавляем символьную ссылку еще и в /usr/bin.
# chmod +x /usr/local/bin/docker-compose # ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Смотрим, все ли корректно установилось.
# docker-compose -v docker-compose version 1.27.4, build 40524192
Для теста можете запустить что-то с помощью docker-compose. Например, установить WordPress. Для этого создаем файл docker-compose.yaml следующего содержания.
version: '3' services: mysql: image: mysql:8 command: --default-authentication-plugin=mysql_native_password restart: always environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: wordpress volumes: - "./db:/var/lib/mysql" wordpress: image: wordpress:php7.4-apache ports: - "80:80" environment: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: root WORDPRESS_DB_NAME: wordpress volumes: - "./wp:/var/www/html/"
После этого запускаем проект.
# docker-compose up
Поднимутся два контейнера - один с mysql, другой с web сервером и исходниками wordpress. Если получите ошибку соединения с базой данных:
MySQL Connection Error: (2002) No route to host
Значит у вас запущен firewalld. Он не дает нормально работать dns в докере. Вам необходимо отключить firewalld и перезапустить докер.
# systemctl stop firewalld # systemctl restart docker
После этого запускайте docker-compose еще раз и проверяйте работу. Должно получиться примерно так.
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f4edc21405e4 wordpress:php7.4-apache "docker-entrypoint.s…" 31 minutes ago Up 52 seconds 0.0.0.0:80->80/tcp root_wordpress_1 2c80b7811bb5 mysql:8 "docker-entrypoint.s…" 31 minutes ago Up 52 seconds 3306/tcp, 33060/tcp root_mysql_1
Docker-compose успешно установлен и проверен на Centos. Можно использовать по назначению.
Ссылка на официальную документацию - https://docs.docker.com.