Краткое руководство по Docker

задняя часть Spring контейнер Docker

Оригинальный адрес:блог haifeiwu и его друзей
адрес блога:www.hchstudio.cn
Добро пожаловать в перепечатку, пожалуйста, указывайте автора и источник, спасибо!

Docker Я давно слышал его знаменитое имя, но всегда пренебрегал практикой и готов сделать это сегодня.

docker
docker

Dockerчто это такое?

Docker — это пакет контейнеров Linux, предоставляющий простой в использовании интерфейс контейнера.В настоящее время это самое популярное контейнерное решение для Linux.

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

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

Dockerкак использовать?

Установить эту статьюDockerосновывается наCentOS7, для других систем перейдите непосредственно на официальный сайтquick start.

удалить старую версиюDocker

старая версияDockerназываетсяdockerилиdocker-engine. Если они установлены, удалите их и связанные с ними зависимости.

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

УстановитьDocker CE

Вы можете установить его по-разному в соответствии с вашими потребностямиDocker CE:

  • Большинство пользовательских настроекDockerрепозиторий и установить из него для облегчения задач установки и обновления. СлишкомDockerОфициально рекомендуемый метод.

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

  • В средах тестирования и разработки некоторые пользователи предпочитают использовать автоматизированные сценарии удобства для установки.Docker.

В этой статье используется первый метод:

Первая установка на новый хостDocker CEПеред этим нужно установитьDockerрепозиторий. После этого можно устанавливать и обновлять из репозиторияDocker.

настраиватьREPOSITORY

1. Установите необходимые пакеты.yum-utilsпоставкаyum-config-managerполезность,devicemapperТребуется драйвер хранилищаdevice-mapper-persistent-dataа такжеlvm2.

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

2. Используйте следующую команду для настройки стабильного репозитория.

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

УстановитьDocker CE

1. Установите последнюю версиюDocker CEили перейдите к следующему шагу, чтобы установить конкретную версию

sudo yum install docker-ce

2. Чтобы установить конкретную версиюDocker CE, пожалуйста, перечислитеrepoдоступная версия в , затем выберите и установите: А. Перечислите и отсортируйте версии, доступные в вашем репозитории. В этом примере результаты сортируются по номеру версии, от самой высокой к самой низкой, с усечением:

yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64            18.09.0.ce-1.el7.centos             docker-ce-stable

Возвращаемый список зависит от включенных репозиториев и специфичен для вашегоCentOSверсия (в этом примере начинается с.el7указывает суффикс).

б) Установите конкретную версию по ее полному имени пакета, имени пакета (docker-ce) плюс строка версии (столбец 2) до первого дефиса, разделенная дефисом (-), например,docker-ce-18.03.0.ce.

sudo yum install docker-ce-<VERSION STRING>

DockerУстановил, но еще не запускал. созданныйdockerгруппа, но ни один пользователь не был добавлен в группу.

3. СтартDocker

sudo systemctl start docker

4. Начинаяhello-worldзеркало для проверкиDockerУстановил и успешно запустил

sudo docker run hello-world

Приведенная выше команда загружает тестовый образ и запускает его в контейнере. Когда контейнер запускается, он печатает информационное сообщение и завершает работу.

удалитьDocker CE

1. Удалите установочный пакет докера

sudo yum remove docker-ce

2. Образы, контейнеры, тома или пользовательские профили на хосте не удаляются автоматически. Чтобы удалить все образы, контейнеры и тома:

sudo rm -rf /var/lib/docker

Maven создает образ Docker для Spring Boot

Соберите проект, измените конфигурацию

пройти черезstart.spring.io/Соберите проект Spring Boot.

Изменить pom-файл

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!-- tag::plugin[] -->
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>dockerfile-maven-plugin</artifactId>
            <version>1.3.6</version>
            <configuration>
                <!--suppress UnresolvedMavenProperty -->
                <repository>${docker.image.prefix}/${project.artifactId}</repository>
            </configuration>
        </plugin>
        <!-- end::plugin[] -->
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <!--<version>0.4.12</version>-->
            <configuration>
                <!-- 注意imageName一定要是符合正则[a-z0-9-_.]的,否则构建不会成功 -->
                <!-- 详见:https://github.com/spotify/docker-maven-plugin    Invalid repository name ... only [a-z0-9-_.] are allowed-->
                <dockerHost>http://127.0.0.1:2375</dockerHost>
                <imageName>docker-springboot</imageName>
                <baseImage>java</baseImage>
                <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

должен быть в курсе<dockerHost>http://127.0.0.1:2375</dockerHost>, если установлено локальноdocker, просто используйте локальный по умолчанию, если он не установлен, он должен быть удаленнымdockerСервис должен быть настроен на сервереdocker, пожалуйста, перейдите кУдаленное подключение к докеру.

Добавить кDockerfile

Уведомлениеcom.whforever.dockerspringboot.DockerSpringbootApplicationОтносится кSpring BootЗапись кода для проекта.

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG DEPENDENCY=target/dependency
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","com.whforever.dockerspringboot.DockerSpringbootApplication"]

строить строитьSpring BootизDockerзеркало

воплощать в жизньmavenкоманда, выполнить сборку

mvn clean package docker:build

После того, как выполнение завершено, мы можем удаленно увидеть только что построенныйSpring Bootзеркальное отражение.

docker container ls 

CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS                    NAMES
e5f2c7e4e7c1        docker-springboot:latest   "java -jar /docker-s…"   22 hours ago        Up 22 hours         0.0.0.0:8080->8080/tcp   agitated_kilby

запустить образ докера

docker run -p 8080:8080 docker-springboot

Идеально……

docker-run
docker-run

резюме

Код, задействованный в этой статье, был загружен наgithub, заинтересованные друзья, пожалуйста, нажмитеGitHub.com/HaifeiWU/до…

Ссылка на ссылку

关注我们
Подписывайтесь на нас