docker部署springboot项目及docker配置和常用命令

docker配置:

安装完docker之后修改配置文件/etc/docker/daemon.json来使用加速器,daemon.json添加配置如下:

{
"registry-mirrors":["https://82m9ar63.mirror.aliyuncs.com"]
}
  1. 编写Dockerfile文件并配置相关内容,将jar包与Dockerfile文件放置同一目录下。
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER fengjie
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
VOLUME /sys_logs
# 将jar包添加到容器中并更名为xxx.jar
ADD demo-0.0.1-SNAPSHOT.jar xxx.jar 
# 运行jar包
RUN bash -c 'touch /xxx.jar'
#相当于java -jar命令,还可以增加其他的启动参数如:"-Dfile.encoding=utf-8"等
ENTRYPOINT ["java","-jar","/xxx.jar"]
  1. maven打好jar包并上传到服务器,使用docker build命令制作镜像(注意末尾的点!)
执行 docker build -t trace_system . 

-t 参数是指定此镜像的tag名

image

  1. 制作完成后使用docker images 命令查看制作的镜像
    image

  2. 启动容器

docker run -d -p 8088:8081 trace_system
#-d参数是让容器后台运行 
#-p 是做端口映射,此时将服务器中的8088端口映射到容器中的8081(项目中端口配置的是8081)端口

更多情况是需要将java项目的日志输出到宿主机上方便后续排查问题,可使用 -v将项目日志目录挂载到宿主机上的指定目录

  • 首先在宿主机上创建容器需要挂载映射的目录,注意权限最好是可读可写可执行

  • 启动容器

docker run -d -p 8088:8088 --name mycontainer -v /home/sys_logs:/sys_logs myimages
# --name mycontainer 是指定容器名称为mycontainer 
# -v 代表将宿主机上的文件目录 "/home/sys_logs"与容器内目录"sys_logs"挂载映射
# myimages 是自己的镜像名称
# -d 后台运行
# -p 端口映射

如上启动之后项目的日志信息就会输出到宿主机的对应目录下。也可以使用docker inspect 容器ID命令查看挂载情况。

也可以像上面一样使用-v同时挂载jar包路到宿主机上,这样一来后续更新项目只需要替换更新宿主机上指定位置的jar包即可。

docker run -d -p 8080:8080 --name mycontainer -v /home/sys_logs:/sys_logs -v /home/xxx_app.jar:/xxx_app.jar myimage

注意:
如果服务器的MySQL、Redis等不是docker进行安装的,使用宿主机上的数据库需要修改项目连接地址为docker的地址。

  • 先查看docker的地址
ifconfig

image

  • 找到redis的配置文件redis.conf,找到bind 127.0.0.1这一行,添加刚才的地址,重载配置后即可连接成功。
bind 127.0.0.1 172.17.0.1
  1. 相关常用命令

docker info       #显示docker的系统信息,包括镜像和容器的数量
docker version    #显示docker的版本信息。


#镜像命令
docker images #查看所有本地主机上的镜像 可以使用docker image ls代替
docker search #搜索镜像
docker pull #下载镜像 docker image pull
docker rmi #删除镜像 docker image rm


#容器命令
docker run 镜像id #新建容器并启动
docker ps 列出所有运行的容器 docker container list
docker rm 容器id #删除指定容器
	#删除所有容器
	docker rm -f $(docker ps -aq)  	 #删除所有的容器
	docker ps -a -q|xargs docker rm  #删除所有的容器
#启动和停止容器
docker start 容器id	#启动容器
docker restart 容器id	#重启容器
docker stop 容器id	#停止当前正在运行的容器
docker kill 容器id	#强制停止当前容器
#退出容器
exit 		#容器直接退出
ctrl +P +Q  #容器不停止退出 	---注意:这个很有用的操作


#其他常用命令
docker run -d 镜像名  	#后台启动命令
docker logs 		#查看日志
docker top 容器id 	#查看容器中进程信息ps
docker inspect 容器id	#查看镜像的元数据
docker exec 		#进入当前容器后开启一个新的终端,可以在里面操作。(常用)
docker attach 		# 进入容器正在执行的终端
docker cp 容器id:容器内路径  主机目的路径	#从容器内拷贝到主机上


posted @ 2023-07-19 23:15  加瓦同学  阅读(156)  评论(0编辑  收藏  举报