内容简介:Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 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
中的可用版本,然后选择并安装:
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 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 镜像
docker run -p 8080:8080 docker-springboot
完美……
以上所述就是小编给大家介绍的《Docker 快速上手指南》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据结构与算法分析
[美]Mark Allen Weiss / 张怀勇 / 人民邮电出版社 / 2007年 / 49.00元
《数据结构与算法分析:C++描述(第3版)》是数据结构和算法分析的经典教材,书中使用主流的程序设计语言C++作为具体的实现语言。书的内容包括表、栈、队列、树、散列表、优先队列、排序、不相交集算法、图论算法、算法分析、算法设计、摊还分析、查找树算法、k-d树和配对堆等。《数据结构与算法分析:C++描述(第3版)》适合作为计算机相关专业本科生的数据结构课程和研究生算法分析课程的教材。本科生的数据结构课......一起来看看 《数据结构与算法分析》 这本书的介绍吧!