内容简介:show me the code and talk to me,做的出来更要说的明白本文源码,请点击我是布尔bl,你的支持是我分享的动力!
show me the code and talk to me,做的出来更要说的明白
本文源码,请点击 learnSpringboot
我是布尔bl,你的支持是我分享的动力!
一、 引入
有开发经验的都知道,几乎每种技术都有一个吉祥物代表。那么 Docker
的吉祥物是怎么样的呢? 下图我们可以看到 Docker
是一个小鲸鱼,他的上面运载者许多货物。
二、快速入门
2.1 我为什么要用 Docker
那么, Docker
究竟是什么东西来的呢? Docker
由 Go
语言编写,是一个免费开源的开放平台,可以运行在多个主流平台。 Docker
可以用于开发应用、交付应用、运行应用。简单来说, Docker
就像一个 Linux
里面的 Linux
。那么我们为什么需要使用 Docker
,因为 Linux
在使用代价高,配置麻烦。一般我们使用 Linux
服务器需要向阿里、腾讯购买,是不是。不过,如果可以的话我们更喜欢白嫖。
因此, Docker
的出现就可以解决这个痛点了。只要你有想法,你可以在 Linux
服务器里面安装上 Docker
,然后在 Docker
里面装多个Linux`服务器。
由于 Docker
具有 隔离性 ,我们无需担心多个 Linux
会互相影响(串味)。
另外的优点是,当我们安装组件的时候,在 Linux
上面很麻烦,在 Docker
上面可以更快配置组件。我们还可以编写 Dockerfile
脚本,实现生产环境与开发环境同步配置的目的。
2.2 Docker
原理
我们在 Linux
里安装 Docker
,其实跟我们以前在 Windows
里安装 虚拟机 一样。 Docker
利用了 Linux
服务器的物理特性,就像 病毒 一样,寄生在服务器里面。
2.3 一些名字解释
Docker
有一些名词: 镜像、容器、Dockerfile、Docker Hub 。
Docker Hub
就像我们使用的 github
。里面有各种各样的 镜像 。其中有分为官方和非官方,我们在拉取的时候当然是选择官方啦。
在我们拉去镜像回 Docker
后,我们就可以运行了,就像快递到家了,我们需要手撕他。然后镜像就变成了 容器 。
另外我们也可以通过 Dockerfile
将本地应用变成镜像。
至于 Docker Compose
,就是我们运行镜像的时候,需要编写一大推命令,而 Docker Compose
可以以 yml
文本形式快速运行镜像,做到一次编写,处处运行。
三、安装 Docker
我们可以在各个平台安装运行 Docker
。在这里,我演示的是 Linux
平台。
# 1、 yum 包更新到最新 yum update # 2、安装需要的软件包, yum-utils 提供yum-config-manager功能, 另外两个是devicemapper驱动依赖的 yum install -y yum-utils device-mapper-persistent-data 1vm2 # 3、设置yum源 yum-config-manager -- add-repo https://download.docker.com/linux/centos/docker-ce.repo # 4、安装docker,出现输入的界面都按 y yum install -y docker-ce # 5、查看docker版本,验证是否验证成功 docker -V
安装成功后显示
当然由于众所周知的原因,我们的 Docker
需要进行加速,不然就得忍受蜗牛般的速度。因此,我推荐 阿里云的 Docker
容器镜像加速 配置。
四、常用命令
docker
作为一个类 Linux
平台,自然也有命令行操作。当然,不喜欢命令行操作,推荐可以使用界面操作 portainer
组件。
1. 启动、停止
# 启动 service docker start # 停止 service docker stop
2. 查看版本
docker -v
这里我们最好安装 1.3
以上版本
3. 搜索镜像
docker search jdk
4. 拉取镜像
docker pull 镜像名
5. 查看镜像
docker images
6. 运行镜像
docker run -p 8083:8083 springio/gs-spring-boot-docker
前面端口是服务器端口,后面是 Docker
暴露的端口,这里映射端口的目的是为了我们可以远程访问到 Docker
里面的容器。端口不一定相同。
可选参数
-d # Run container in background and print container ID:后台运行以及打印容器id -v #挂载容器目录到宿主机(服务器),达到修改宿主机文件同步到容器文件目的
7.删除镜像
docker rmi 镜像id
8.查看运行容器
docker ps
9.查看全部容器包括,没有运行
docker ps -a
10.删除容器
docker rm 容器id
11.查看容器运行日志
docker logs 容器id
12.进入容器内部,命令行界面
docker exec -it 容器id /bin/bash
我们在启动容器的过程,可能会碰到容器启动失败的情况。
五、 Nginx
1.搜索 Nginx
2.拉去 Nginx
镜像
3.运行 Nginx
镜像
docker run --name my_nginx -d -p 8081:80 -v /srv/web/logs:/var/log/nginx -v /srv/web/conf/nginx.conf:/etc/nginx/nginx.conf -v /srv/web/conf/default.conf:/etc/nginx/conf.d/default.conf -v /srv/web/html:/usr/share/nginx/html docker.io/nginx
说明
--name my_nginx 把容器起一个名字
-d 后台运行
-p 8081:80 将容器80端口映射到宿主机(服务器)8081端口
-v /srv/web/logs:/var/log/nginx
挂载目录, " : "前面是宿主机目录,后面是容器文件目录
docker.io/nginx 原来镜像名字
4.查看 Nginx
容器
docker ps
六、实例之部署 SpringBoot
1. 编写代码
package com.example.demo2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.stereotype.Service; @SpringBootApplication public class Demo2Application { public static void main(String[] args) { E e = (E) SpringApplication.run(Demo2Application.class, args).getBean("ss"); e.test(); } @Service(value = "ss") class E { public void test() { System.out.println("service1111111"); } } }
2. 打包 jar
mvn clean package -Dmaven.test.skip=true
在 target
目录找到 jar
,重名 lsb-helloworld
3. 编写 Dockerfile
文件
FROM docker.io/adoptopenjdk/openjdk8 COPY lsb-helloworld.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"]
然后将 jar
和 Dockerfile
文件上传到 Linux
服务器的同一目录
4. 运行 Dockerfile
文件
docker build -t springio/gs-spring-boot-docker .
生成名为 springio/gs-spring-boot-docker
的镜像
5. 运行镜像
docker run -p 8083:8083 springio/gs-spring-boot-docker
公众号
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 面向开发者的18个机器学习平台
- Firefox 正在测试面向开发者的“时间旅行调试”功能
- 谷歌宣布开源创新隐私保护技术,面向所有开发者
- 面向开发者的工程化 CLI 中台:分层插件架构
- 面向开发者的工程化 CLI 中台:分层插件架构
- Chrome 84 稳定版正式发布,带来许多面向开发者的更新
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。