原 使用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 条评论
登录 后参与评论

相关文章

来自专栏Django Scrapy

docker 基本命令

一,关于docker镜像操作的基本命令 以镜像centos为例 查找镜像docker search centos 下载镜像docker pull cen...

33012
来自专栏编程坑太多

『中级篇』Dockerfile实战(19)

1143
来自专栏北京马哥教育

Docker常用命令汇总

一、查看docker信息 1、查看docker版本 docker version 2、显示docker系统的信息 docker info 二、对image的...

3299
来自专栏finleyMa

docker学习系列5 nginx 容器

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

642
来自专栏编程坑太多

『中级篇』构建自己的Docker镜像(16)

1305
来自专栏编程坑太多

跟我一起学docker(三)--镜像的常用操作

1416
来自专栏Python、Flask、Django

Docker精简项目(Python3.6+Flask1.0+Pipenv)

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

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

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

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

docker:(1)docker基本命令使用及发布镜像

docker镜像可以完全看作一台全新的电脑使用,无论什么镜像都是对某一东西进行了配置,然后打包后可以快速移植到需要的地方直接使用

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

docker:(1)docker基本命令使用及发布镜像

docker镜像可以完全看作一台全新的电脑使用,无论什么镜像都是对某一东西进行了配置,然后打包后可以快速移植到需要的地方直接使用

962

扫码关注云+社区