Docker 快速上手指南

栏目: 编程工具 · 发布时间: 6年前

内容简介:Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

Docker 听其大名已久,但总是疏于操练,今天准备好好搞一下。

Docker 快速上手指南

Docker 是什么?

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。

Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

Docker 怎么用?

本文安装 Docker 是基于 CentOS7 ,其他系统的小伙伴请直接转官网的 quick start .

卸载旧版本的 Docker

较旧版本的 Docker 被称为 dockerdocker-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-datalvm2

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 中的可用版本,然后选择并安装:

a. 列出并对您的仓库中可用的版本进行排序。 此示例按版本号对结果进行排序,从最高到最低,并被截断:

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

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

返回的列表取决于启用的存储库,并且特定于您的 CentOS 版本(在此示例中以 .el7 后缀表示)。

b. 通过其完全限定的包名称安装特定版本,包名称( 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` 安装并启动成功

```bash
sudo docker run hello-world

上面的命令下载测试映像并在容器中运行它。 当容器运行时,它会打印一条信息性消息并退出。

卸载 Docker CE

1, 卸载 docker 的安装包

sudo yum remove docker-ce

2, 主机上的图像,容器,卷或自定义配置文件不会自动删除。 要删除所有图像,容器和卷:

sudo rm -rf /var/lib/docker

Maven 构建 Spring Boot 的 Docker 镜像

构建项目,修改配置

通过 https://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 ,具体操作请移步 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 BootDocker 镜像

执行 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 镜像

docker run -p 8080:8080 docker-springboot

完美……

Docker 快速上手指南


以上所述就是小编给大家介绍的《Docker 快速上手指南》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机程序设计艺术(第2卷)

计算机程序设计艺术(第2卷)

高德纳 / 机械工业出版社 / 2008-1 / 109.00元

《计算机程序设计艺术:半数值算法(第2卷)(英文版)(第3版)》主要内容:关于算法分析的这多卷论著已经长期被公认为经典计算机科学的定义性描述。迄今已出版的完整的三卷已经组成了程序设计理论和实践的惟一的珍贵资源,无数读者都赞扬Knuth的著作对个人的深远影响,科学家们为他的分析的美丽和优雅所惊叹,而从事实践的程序员已经成功地将他的“菜谱式”的解应用到日常问题上,所有人都由于Knuth在书中表现出的博......一起来看看 《计算机程序设计艺术(第2卷)》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

MD5 加密
MD5 加密

MD5 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具