原 使用docker部署微服务应用

docker安装

ubuntu

1. 安装docker

apt install docker.io

apt install docker-compose

2. docker 基本命令

docker images 查看docker镜像

docker rmi 删除镜像

docker ps 查看在运行的dokcer容器(-a 查看所有镜像)

docker rm [容器名字或ID] 删除容器

docker部署单个应用

1. 下载java基础镜像到本地

docker pull java:8

2. 创建镜像的准备工作

将需要发布的springboot应用jar包放在一个文件夹内,并创建一个Dockerfile文件

Dockerfile文件内容如下:

FROM java:8
VOLUME /tmp
ADD demo3-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8082
ENTRYPOINT [ "java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar" ]

3. 创建一个镜像,名称是zipkin(命令结尾的'.'表示Dockerfile的位置是在当前文件夹)

docker build -t zipkin .

逐步执行Dockerfile,并创建镜像后,使用docker images 就可以看到创建的镜像zipkinl。

4. 使用镜像运行一个容器

docker run --name 容器名称 -d -p 内部端口:外部端口 镜像名称

dokcer run --name zipkin -d -p 9411:9411 zipkin

稍等片刻,启动完成后就可以访问zipkin.jar提供的服务,如下:

如果需要查看容器zipkin启动时的日志,可以使用命令:

docker logs -f zipkin

容器在运行后可以使用 docker ps 查看

docker run 根据镜像创建并运行了一个容器,如果想运行已有的容器,使用 docker start [容器名或ID],停止运行容器使用 docker stop [容器名或ID] 或 docker kill [容器名或ID]。

至此,一个应用使用docker已经部署完毕,其实就是创建镜像和运行容器两步:创建镜像需要Dockerfile文件和使用的jar包;运行容器需要一个镜像,也可以说容器就是镜像的一个实例。

5. 数据库服务:

mysql 

docker pull mysql:5.7

docker run --name docker-mysql -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 mysql:5.7

详细参考: https://hub.docker.com/_/mysql/?spm=5176.1972344.1.5.zx87vs

redis

docker pull redis

docker run --name dokcer-redis -d -p 6379:6379 redis

详细参考:https://dev.aliyun.com/detail.html?spm=5176.1971733.2.20.UT2z6d&repoId=1259

192.168.181.129 是ubuntu虚拟机的ip地址,mysql和redis客户端是windows系统的软件,都可以连接成功。

docker-compose部署多个应用

将多个镜像运行

需要有docker-compose.yml或docker-compose.yaml文件,在此路径下运行命令

docker-compose up 

docker-compose down

docker-compose 

docker-compose.yaml文件

zipkin:
  image: zipkin
  ports:
  - "9411:9411"
demo3:
  image: demo3
  ports: 
  - "8082:8082"
  links:
  - zipkin

详细参考: https://www.jianshu.com/p/2217cfed29d7

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏A周立SpringCloud

Docker系列教程05-容器常用命令

本节我们来讨论Docker容器的常用命令。 新建并启动容器[重要] 使用以下 docker run 命令即可新建并启动一个容器。该命令是我们最常用的命令了,它有...

41960
来自专栏禹都一只猫博客

docker入门:安装以及基本的命令

23450
来自专栏从零学习云计算

Docker学习记录(1)——搭建自己的Docker Registry

最近在编写Kubernetes demo的时候,遇到了一个问题:当相同的Pod部署到不同的Node上时,每个Node都得下载Pod中指定的镜像文件。 由于“墙”...

90400
来自专栏点滴积累

Docker Registry

前言 上一篇文章讲了Docker Machine实现多主机Docker节点的管理。本文讲解如何实现Docker Registry,其实这个在第一篇Docker入...

45870
来自专栏云计算教程系列

如何在Ubuntu 18.04上安装Docker Compose

Docker是一个很好的工具,用于在软件容器中自动部署Linux应用程序,但要充分利用其潜力,应用程序的每个组件都应该在自己的单独容器中运行。对于具有大量组件的...

1K20
来自专栏运维前线

使用容器部署静态(HTML)网站

使用容器部署静态(HTML)网站 学习如何使用Nginx来创建一个用于运行静态HTML网站的Docker镜像,会解释如何构建一个运行Nginx与HTML网站的...

25780
来自专栏猿说1024

Docker 常用命令

23830
来自专栏编码前线

Docker容器进入的4种方式(推荐最后一种)

  在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器...

28730
来自专栏finleyMa

docker学习系列5 nginx 容器

docker run 其实等于 docker create + start 因为tag为 1.15 的 nginx 镜像并不在本地,会先下载再运行

15220
来自专栏后台及大数据开发

kubernetes集群搭建(2):docker私有仓库

kubernetes集群搭建(1):环境准备 中各节点已经安装好了docker,请确认docker已启动并正常运行

10010

扫码关注云+社区

领取腾讯云代金券