首页 > 自考资讯 > 高考百科

30分钟带你了解Docker?30分钟了解英国

小条 2024-07-05

自己研究了几天Ddocker,总结了一下,补充了文章《30分钟入门系列》。我们不会重复在互联网上找到的Docker 定义。 Docker是一个虚拟化的Linux容器,是对当前流行的SpringBoot和微服务框架的补充。从开发到部署的整个过程变得真正灵活。这里需要重点关注三个关键词:Linux容器、SpringBoot、敏感性。首先,Docker不能用来部署本地应用程序(如果你曾经开发过基于Qt的桌面应用程序,你就会知道不一致的执行环境是开发人员的噩梦)。其次,虽然本篇博客是针对Java开发者的,但是Docker的使用场景并不仅限于此。最后,敏捷意味着你可能需要对你的开发方法进行调整,一旦你了解了如何使用Docker,就应该认真考虑这一点。

1、环境改善

我个人的测试环境是VirtualBox、CentOS7、以及最新版本的Spring Boot。首先,以最小模式安装CentOS。

153370740605514ac2ea1d0~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720734779&x-signature=ruWYrCmfA38ei2xZjG8Gmsk3dV8%3D 1533707412098c8c9fe58e8~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720734779&x-signature=o7cipp6KkBXZGFgJ%2BgNt2OlDukY%3D 我们建议在安装阶段默认打开网络链接.然后等待20分钟让虚拟机安装。

153370742733895c8feab5c~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720734779&x-signature=9RW%2FnbJm4DMngyRzMYWJ6NEnt7I%3D 这是最小安装,因此我们建议在完成后安装一些基本命令。

1.百胜更新

2. yum install -y net-tools vimcurl wget

即使您已经创建了上述测试环境,请从下面开始安装Docker。当我访问官方网站时,我发现了精心准备的安装教程。现在您可以登录Docker的官方网站,在这里您还可以找到基于Centos的安装说明。不过,为了以防万一,我会把它记录在我的博客上。如果您无法使用英语或发现阅读困难,请按照以下步骤操作:

1.卸载系统中以前的版本

$ sudo yum 删除docker \

码头工人客户端\

docker-客户端-最新\

Docker常见\

码头工人最新\

docker-最新-logrotate \

docker-logrotate \

码头工人塞利纳克斯\

Docker 引擎- Selinax\

码头引擎

2、安装工具

$ sudo yum install -y yum-utils \

设备映射器持久数据\

LVM2

3、配置Docker安装yum源

$ sudo yum-config-manager\

--添加存储库\

https://download.docker.com/linux/centos/docker-ce.repo

4.安装Docker CE

$ sudo yum 安装docker-ce

5.启动Docker

$ sudo systemctl 启动docker

6.运行Hello World

$ sudo docker 运行hello-world

1533707445009ddb30b3f55~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720734779&x-signature=VJBBSl%2F2xM7RwT7EQT0sMEADpxk%3D7 配置国内图片加速。

卷曲-sSL https://get.daocloud.io/daotools/set_mirror.sh sh -s http://57326c54.m.daocloud.io

2. 操作指南

有关详细说明,互联网上有许多可用的docker 命令,并且可以在更可靠的位置找到。这里仅列出并解释了一些最重要的命令。

1.查看镜像列表:docker images

15337074554009e49aabe11~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720734779&x-signature=CvsIwAQQb%2B%2BeC3bDlinSJ%2BPsm44%3D 您不需要那么多镜子,但至少需要一个hello-world。是的,这是您之前下载的测试图像。

2、查看容器列表:docker ps -a

15337074671143b97dea126~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720734779&x-signature=4Lg%2B27Zb5oocfElYMQGpDFn2NFc%3D 您应该只看到一个hello-world 容器。

这里我们触及了关于Docker 的第一个重要概念:镜像和容器。不过,我们暂时不讨论这两个概念。可以重复执行。

$ sudo docker 运行hello-world

接下来,查看容器列表。

1533707479869b2ad59284c~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720734779&x-signature=WWE%2BnNCRtJHtDiBLldre7I2LMTc%3D 是的,如果多次运行同一个映像,您将看到只下载了一个映像,但出现了多个容器。更准确地说,运行几次hello-world 将生成多个容器。

3.停止并删除容器:docker stop/rm [container_id]

当我把所有的helloworld容器都拿掉后,整个世界瞬间变得更加美丽了。

4.删除镜像:docker rmi [image_id]

去掉hello-world的图像后,世界终于又安静了。

现在你已经感性地理解了它,你可以解释图像和容器的概念了。

镜像就像一个iso文件,docker需要使用该镜像作为源。镜像可以重复使用;每次通过镜像启动docker,就变成一个容器,容器之间是隔离的。当您删除容器时,容器内的所有更改都会丢失。

最经典的图就是用来表示镜像和容器之间的关系。

15337074927142280176210~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720734779&x-signature=kYEcmlZS5D5TM%2BtmeL%2FhbndLa68%3D 是的,完整的Docker 项目如下所示:本地系统(boosfs)上可以有多个镜像(image),它们之间有继承关系,执行环境的最顶层就是容器。容器)。 )。所有修改操作仅发生在容器内。容器关闭时数据会丢失,除非将容器写入新的镜像层。然而,还有更好的方法来存储数据,但我们今天不讨论它们。

5. 获取镜像:docker pull [image_name]

****************************************************** ******

确保配置了国内图像加速。

vim /etc/docker/daemon.json

作品:

{

'注册表镜像': ['http://57326c54.m.daocloud.io']

}

重新启动Docker:systermctl 重新启动docker

****************************************************** ******

首先查看CentOS相关镜像

docker搜索sentos

第一个看起来很“官方”

docker拉centos:最新

下载完成后,首先验证镜像docker镜像没有问题。

6. 交互式启动镜像: docker run -it [image_name] [args.]

docker run -it centos /bin/bash

啊?似乎一切都没有改变。仔细查看命令提示符是否已更改。

1533707503996f993417a63~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720734779&x-signature=X2jXpd07Vrz1Cpyy9dgU1wkGgVk%3D 是的,您进入了容器,进入了容器的CentOS操作界面。

7.安装MySQL

$ sudo yum install -y wget

$ sudo wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

$ sudo yum 安装mysql-community-server

作品

$ sudo mysql_install_db --user=mysql --ldata=/var/lib/mysql

开始

$ sudo mysqld_safe

8.离开容器:Ctrl+q、Ctrl+p

此组合键用于退出容器并使其在后台运行。

9. 重新登录容器: docker exec -it [container_id] [args.]

docker exec -it 21f99e364fb1 bash

授予MySQL root 用户远程连接权限。

# mysql -u 根目录

mysql UPDATE mysql.user SET 密码=PASSWORD('12345678') WHERE user='root';

使用GRANT 选项将mysql *.* 上的所有权限授予“12345678”标识的“root”@“%”。

mysql flash 权限。

10.提交镜像:docker commit [container_id] [myimage_name:tag]

要提交您自己的映像,您必须首先终止当前容器。

出口

docker提交21f99e364fb1 centos:mysql

11.端口映射: docker run -p [local_port]:[docker_port] -it [image_name] [args.]

docker run -p 3307:3306 -it centos:mysql /bin/bash

这样就可以在本地操作系统中访问虚拟机的3307端口来访问自己部署在docker上的mysql服务了。

3. 为您的SpringBoot项目构建Docker镜像

如果到目前为止一切顺利,您就已经掌握了使用docker 的基础知识。上面的mysql 安装实际上只是熟悉docker 基本命令的入门。在实际开发中,很少将mysql部署到docker上。更常见的开发场景是从SpringBoot项目生成Docker镜像。现在我们正式进入实战阶段。

1.首先在本地构建SpringBoot项目

通过SpringBoot官方网站生成一个基础项目。

15337075234237ee20d1a62~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720734779&x-signature=gA%2BDlRgvaJePmX7fpvfR4H17EuU%3D 接下来,通过您喜欢的IDE 导入并打开项目,并将依赖项添加到pom.xml 文件。

依赖

groupIdorg.springframework.boot/groupId

artifactIdspring-boot-starter-web/artifactId

/依赖

插入

groupIdcom.spotify/群组ID

artifactIddocker-maven-plugin/artifactId

版本1.0.0/版本

作品

imageName${docker.image.prefix}/${project.artifactId}/imageName

dockerDirectory src/main/docker/dockerDirectory

资源

资源

目标路径//目标路径

目录${project.build.directory}/directory

include${project.build.finalName}.jar/include

/资源

/资源

/作品

/插入

创建控制器文件。

@RestController

公共类DockerController {

@RequestMapping('/')

公共字符串你好(){

返回“你好,Docker!”

}

}

然后在本地运行看看是否有问题。如果一切正常,请继续下一步。

2.接下来需要将项目放入Docker环境中进行打包。

(1)在虚拟机上安装jdk

yum -y 安装java-1.8.0-openjdk*

(2) 设置环境变量如下。

vim /etc/配置文件

导入JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64

导出PATH=$PATH:$JAVA_HOME/bin

(3)从Apache官网下载最新版本的maven。

tar vxf apache-maven-3.5.4-bin.tar.gz

mv apache-maven-3.5.4 /usr/local/maven3

(4) 设置环境变量,如下图所示。

导入MAVEN_HOME=/usr/local/maven3

导出PATH=PATH:MAVEN_HOME/bin

(5)启用环境变量

源/etc/profile

(6)编写DockerFile文件

在主目录下添加docker目录,并创建DockerFile文件。 文件内容如下。

来自openjdk:8-jdk-alpine

体积/温度

添加hellboot-0.0.1-SNAPSHOT.jar app.jar

ENTRYPOINT ['java','-Djava.security.egd=file:/dev/./urandom','-jar','/app.jar']

(7) 接下来,在项目路径中使用Maven包。

mvn 包docker:build

如果构建中途失败,可能是因为你的项目名称和我的不同。通常,您可能会在初始构建期间看到各种错误消息。只需将其放在互联网上并查找即可。

构建完成后,您可以通过Docker镜像查询镜像列表。

153370753885460cd2eaf95~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720734779&x-signature=EmB8nudMYYfDYXnQ9fu1rLSM0Q0%3D 是的,第一张图片是我们的项目。让我们启动此映像并将其映射到服务器上的端口80。

docker run -p 80:8080 -t springboot/helloboot

最后,当你看到“Hello Docker!”时,直接从本地浏览器访问虚拟机的IP。

描述使用Docker 成功部署Spring Boot 项目。

版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。

猜你喜欢