前期准备:
1.XXX.jar 一个jar包
2.在服务器安装docker
3.在服务器创建Dockerfile文件
4.构建Jar包镜像
5.运行镜像,部署jar包
想用服务器自己做测试的小伙伴,可以去华为云购买,华为云有新用户免费一个月的服务器,足够做测试了,家里有矿的也可以直接去阿里云买个一年的 新用户99元
上干货:
docker相关概念简单描述:
Docker image:包含运行所需的文件。
Docker container:运行一个镜像就是一个容器。
Docker hub/registry:共享和管理镜像的库。
1、准备一个jar包
注:这里我将jar包的名称改为app.jar方便后续操作
然后可以通过Xftp将本地jar包传输到服务器的home目录中
(在home目录中创建一个文件夹)创建文件夹命令:mkdir 文件夹名称
2、创建Dockerfile文件
2.1 然后在创建的文件夹中创建Dockerfile文件 创建文件命令touch Dockerfile
2.3 然后cd 进入目录 vi Dockerfile 进入后按 i 将下面内容粘贴
FROM openjdk:8
ADD app.jar /user/app.jar
ENTRYPOINT ["java","-jar","/user/app.jar"]
FROM:指定基础镜像
ADD:复制当前文件夹下的app.jar到容器中的/user/app.jar位置
ENTRYPOINT:容器启动后执行的命令
粘贴完成后按Esc 然后输入 :wq 结束
3、构建镜像
在/home目录下执行如下命令,把Dockerfile构建成docker image
docker build -t application/app .
application/app 为自定义的镜像名称
. 指代当前目录下的Dockerfile
4、运行镜像,部署jar包
docker run -d --restart=always --name app -p 8888:8888 -v /usr/application/app/logs:/usr/app/logs application/app
-d --restart=always:表示服务器重启后容器自动重启。
–name app:指定容器名称,一般使用服务名。
-p 8888:8888:把右边容器的8888端口映射到左边服务器8888端口。
-v /usr/application/app/logs:/usr/app/logs:把容器的/usr/app/logs目录,挂载到服务器的/usr/application/app/logs目录,这样数据保存在服务器上,容器重启时数据不丢失。
application/app:镜像名称。
做完以上步骤后你可以访问服务接口测试一下服务是否正常运行。
如果无法连接服务,检查一下防火墙是否开通对应的端口,参考linux开放/禁止指定端口号,查看所有开放的端口号,防火墙开启关闭
5、docker安装
5.1、安装命令
yum install docker
5.2、启动docker服务
service docker start
5.3、设置开机启动
chkconfig docker on
CentOS 7 命令如下
5.5、启动docker服务
systemctl start docker.service
5.6、设置开机启动
systemctl enable docker.service
docker设置国内阿里云的镜像加速器
修改文件/etc/docker/daemon.json
vi /etc/docker/daemon.json
添加如下内容后保存
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"],
"live-restore": true
}
重启docker
systemctl restart docker
能正常查看版本说明安装成功
docker version
6、常用命令
6.1、启动docker服务
service docker start
或者
systemctl start docker
6.2、停止docker服务
service docker stop
或者
systemctl stop docker
6.3、拉取镜像
docker pull image_name
6.4、查看镜像
docker images
6.5、删除镜像
docker rmi docker.io/tomcat:7.0.77-jre7
或者
docker rmi b39c68b7af30
6.6、进入容器
docker exec -it 999318c7d567 /bin/bash
6.7、查看正在运行的容器
docker ps
6.8、查看所有容器(运行和终止的)
docker ps -a
6.9、启动、停⽌、重启容器
docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id