docker 安装nginx_面向开发者的Docker实践

一、 引入

有开发经验的都知道,几乎每种技术都有一个吉祥物代表。那么Docker的吉祥物是怎么样的呢? 下图我们可以看到Docker是一个小鲸鱼,他的上面运载者许多货物。

cf85fb6e74fe41bd9352be36850a2595.png

二、快速入门

2.1 我为什么要用Docker

那么,Docker究竟是什么东西来的呢?Docker由 Go 语言编写,是一个免费开源的开放平台,可以运行在多个主流平台。Docker 可以用于开发应用、交付应用、运行应用。简单来说,Docker就像一个Linux里面的Linux。那么我们为什么需要使用Docker,因为Linux在使用代价高,配置麻烦。一般我们使用Linux服务器需要向阿里、腾讯购买,是不是。不过,如果可以的话我们更喜欢白嫖。

因此,Docker的出现就可以解决这个痛点了。只要你有想法,你可以在Linux服务器里面安装上Docker,然后在Docker里面装多个Linux`服务器。

d2410b8a0e1bb1414b888a451d4bbca9.png

由于Docker具有隔离性 ,我们无需担心多个Linux会互相影响(串味)。

另外的优点是,当我们安装组件的时候,在Linux上面很麻烦,在Docker上面可以更快配置组件。我们还可以编写Dockerfile脚本,实现生产环境与开发环境同步配置的目的。

2.2 Docker原理

我们在Linux里安装Docker,其实跟我们以前在Windows里安装虚拟机一样。Docker利用了Linux服务器的物理特性,就像病毒一样,寄生在服务器里面。

2.3 一些名字解释

Docker有一些名词:镜像、容器、Dockerfile、Docker Hub

Docker Hub就像我们使用的github。里面有各种各样的镜像。其中有分为官方和非官方,我们在拉取的时候当然是选择官方啦。

4a5796136a75ce954827132ace7aa027.png

在我们拉去镜像回Docker后,我们就可以运行了,就像快递到家了,我们需要手撕他。然后镜像就变成了容器

另外我们也可以通过Dockerfile将本地应用变成镜像。

至于Docker Compose,就是我们运行镜像的时候,需要编写一大推命令,而Docker Compose可以以yml文本形式快速运行镜像,做到一次编写,处处运行。

9c2ec7cc116e2c56ffb20c01add39cc4.png

三、安装Docker

我们可以在各个平台安装运行Docker。在这里,我演示的是Linux平台。

Copy# 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,出现输入的界面都按 yyum install -y docker-ce# 5、查看docker版本,验证是否验证成功docker -V

安装成功后显示

9ddd19be5e0d0622894395639724dfcb.png

当然由于众所周知的原因,我们的Docker需要进行加速,不然就得忍受蜗牛般的速度。因此,我推荐阿里云的Docker容器镜像加速配置。

四、常用命令

docker作为一个类Linux平台,自然也有命令行操作。当然,不喜欢命令行操作,推荐可以使用界面操作portainer组件。

3eac69d1f77b01f17cf4968f3ce75825.png

1. 启动、停止

Copy# 启动 service docker start# 停止service docker stop

2. 查看版本

Copydocker -v

这里我们最好安装1.3以上版本

3. 搜索镜像

Copydocker search jdk
16b5e7ea89b1e3cf99a553ddb6a7347c.png

4. 拉取镜像

Copydocker pull 镜像名

5. 查看镜像

Copydocker images
5345d61182437b4884deb88d33d39a7b.png

6. 运行镜像

Copydocker run -p 8083:8083 springio/gs-spring-boot-docker

前面端口是服务器端口,后面是Docker暴露的端口,这里映射端口的目的是为了我们可以远程访问到Docker里面的容器。端口不一定相同。

可选参数

Copy-d      # Run container in background and print container ID:后台运行以及打印容器id-v      #挂载容器目录到宿主机(服务器),达到修改宿主机文件同步到容器文件目的

7.删除镜像

Copydocker rmi 镜像id

8.查看运行容器

Copydocker ps 
c5d7569d36c2862bb747caf545a20325.png

9.查看全部容器包括,没有运行

Copydocker ps  -a

10.删除容器

Copydocker rm 容器id 

11.查看容器运行日志

Copydocker logs  容器id

12.进入容器内部,命令行界面

Copydocker exec -it 容器id /bin/bash

我们在启动容器的过程,可能会碰到容器启动失败的情况。

五、Nginx

1.搜索Nginx

94cf39a9fb4cb558032813aa17f23871.png

2.拉去Nginx镜像

418d7dadca8427fbd8a6728604a6c50c.png

3.运行Nginx镜像

Copydocker 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/htmldocker.io/nginx

说明

--name my_nginx 把容器起一个名字

-d 后台运行

-p 8081:80 将容器80端口映射到宿主机(服务器)8081端口

-v /srv/web/logs:/var/log/nginx挂载目录, " : "前面是宿主机目录,后面是容器文件目录

docker.io/nginx 原来镜像名字

4.查看Nginx容器

Copydocker ps
e61ba40ca59116d4966bfb2fd2384e1f.png

六、实例之部署SpringBoot

1. 编写代码

Copypackage com.example.demo2;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.stereotype.Service;@SpringBootApplicationpublic 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

Copymvn clean package -Dmaven.test.skip=true  

在target目录找到jar,重名lsb-helloworld

3. 编写Dockerfile文件

CopyFROM docker.io/adoptopenjdk/openjdk8COPY lsb-helloworld.jar  app.jarENTRYPOINT ["java","-jar","/app.jar"]

然后将jar和Dockerfile文件上传到Linux服务器的同一目录

4. 运行Dockerfile文件

Copydocker build -t springio/gs-spring-boot-docker .

生成名为springio/gs-spring-boot-docker的镜像

5. 运行镜像

Copydocker run -p 8083:8083 springio/gs-spring-boot-docker
d37e14d06c3e66e5b00b3b9566ca8fc9.png

作者: 布尔bl

出处:https://www.cnblogs.com/chenzhuantou/p/12856021.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值