前言
这是我第一次使用dokcer部署项目,现学现卖。成功之后把所有用到的安装及部署和操作命令做一个总结。如有不足,请指教。
使用的是阿里云服务器。CentOS7版本。
Dokcer安装
1.Centos7安装Docker,系统一顿操作。
yum install docker-ce
2.设置开机自启动
chkconfig docker on systemctl start docker.service systemctl enable docker.service
3.使用Docker 中国加速器,因为Docker是外国的,有个强大防火墙。但是Docker也有秘密武器。
首先:
vim /etc/docker/daemon.json
文件内容:
{ "registry-mirrors": ["https://registry.docker-cn.com"], "live-restore": true }
4.重新启动docker
systemctl restart docker
输入docker version 返回版本信息则安装正常。
测试docker是否成功
docker info
出现一下信息证明成功:
········ Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ Insecure Registries: 127.0.0.0/8 Registries: docker.io (secure)
项目部署
准备好一个springboot项目的jar包。
1.创建一个目录,用于放jar包和配置文件Dockerfile。
mkdir /usr/local/springboot
2.通过SSH工具将jar包上传并移动到这个文件夹(命令略...)
3.在这个目录下创建文件Dockerfile
touch Dockerfile
4.编写这个文件内容
vim Dockerfile
// 内容如下 FROM java:8 VOLUME /tmp ADD XXXXXXXX.jar app.jar RUN bash -c ‘touch /app.jar‘ ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
其中:XXXXXX.jar就是我们的springboot项目的jar包。
5.生成镜像文件
docker build -t springboot .
注意:以空格+点结尾,springboot是生成镜像的名字。
6.查看生成的镜像
docker images
7.创建容器并运行jar包
docker run -d -p 10001:10001 springboot ( springboot就是镜像文件)
这样就可以访问了。
所以,docker容器的性质和linux虚拟机是一样一样的。我们使用springboot的jar包,生成镜像文件,再利用镜像文件生成容器。最后使用和操作的就是容器。
如果项目更新了,需要更换容器。更换之前,需要停止容器并首先删除容器,要是先删除镜像文件的话,系统就会提示有容器在使用该镜像。
所以更新的思路为,停止并删除容器,更换镜像文件,重新生成容器并运行。
如果想要更新,可能用到的命令如下:
8.查看执行中的容器
docker ps
查看所有容器命令
docker ps -a
9.停止指定的容器
docker stop 784fd3b294d8 (这个是容器ID,上一步知道的,每次都是随机生成的)
或者
docker stop NAMES (同上)
10.启动已停止的容器
docker start 784fd4b2947d(这是容器ID)
11.进入docker容器
sudo docker exec -it 容器ID /bin/bash
docker容器就相当于一个linux虚拟机,里面的目录完全一样。
查看当前目录中的文件命令“ll”,不能用,“ls”可以。当然,有的命令不能用,也可以在里面装。
1).如果项目中使用logback来打印日志文件,保存的地址是/usr/socket/...,如果用docker容器启动,产生的log文件当然在容器里,并不在云服务器对应的位置。进入到容器的指定位置,可以看到日志文件。
2).如果项目里有上传文件的功能,并且使用的外部地址,地址是 /usr/upload/.. ,如果用容器运行,也是只会传到容器里对应的位置。
12.删除容器
docker rm 784fd3b294d8 (删除镜像之前必须先删除使用该镜像的容器)
13.如果要删除镜像文件
docker rmi springboot(springboot是镜像文件名字)
最后:我这里是使用Dockerfile文件生成镜像文件的,还有使用maven的方式生成镜像文件。我还未试过。
原文地址:https://www.cnblogs.com/fengyuduke/p/11214109.html