docker基础和使用docker运行java程序

标签:

本文出自jvm123.com-java技术分享站:http://jvm123.com/2019/08/docker-shi-yong.html

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部署单个java应用

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

docker pull java:8

2. 创建镜像的准备工作

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

docker基础和使用docker运行java程序插图

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

docker build -t zipkin .

命令结尾的’.’表示Dockerfile的位置是在当前文件夹

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

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

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

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

docker基础和使用docker运行java程序插图(1)

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

docker logs -f zipkin

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

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

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

docker运行其他数据库服务

1. mysql 

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

详细可参考 docker hub 的镜像说明

docker基础和使用docker运行java程序插图(2)

2.redis

docker pull redis
docker run --name dokcer-redis -d -p 6379:6379 redis
docker基础和使用docker运行java程序插图(3)

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

发表评论