个人练习记录,以下为springboot项目部署过程,
有道云笔记地址:https://note.youdao.com/s/6n2mew47
云服务器为阿里云服务器。
- 官方安装脚本:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- 国内daocloud 命令一键安装:curl -sSL https://get.daocloud.io/docker | sh(我用的这种方式)
- 启动docker: sudo systemctl start docker
- 设置开机自启:sudo systemctl enable docker
- 查看docker运行状态:systemctl status docker
- docker images:查看所有镜像
- docker ps:查看所有运行中的容器
- docker ps -a:查看所有容器
- docker stop 容器id:关闭容器
- docker start 容器id:启动容器
- docker restart 容器id:重启容器
- docker exec -it 容器名 /bin/sh 或者 docker exec -it 容器id /bin/sh:进入容器(比如mysql、redis)
- docker inspect --format='{{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq):这个命令可以查所有容器的信息,里边会有一个172开头的就是容器的ip了
- 下载镜像:docker pull mysql ,默认会下载最新版本
- docker images 查看镜像。
- docker inspect 镜像名字:可以查看更详细的镜像信息。比如版本号
- docker run -itd --name mysql -p 3306:3306 -v /data/mysql/:/etc/mysql/ -v /home/mysql/mysql-files:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=root mysql
- -d:让容器子在后台运行
- –name:给容器起个名字
- -p 3306:3306:把宿主机的3306端口映射到mysql的3306端口
- -v 容器启动,挂载宿主机的目录,冒号分隔,冒号前为宿主机目录,冒号后为容器目录。https://blog.csdn.net/hnmpf/article/details/80924494
- -e MySQL 容器的环境配置 MYSQL_ROOT_PASSWORD=123456 指定mysql根用户的密码,用户名默认为root,注意如果没有指定密码,会启动失败。
- docker exec -it mysql /bin/bash 进入mysql容器
- mysql -h localhost -u root -p 连接mysql
- creata database 数据库名:创建数据库
- use 数据库:进入要操作的数据库
编写Dockerfile文件(没有后缀)内容如下
# Docker image for springboot file run # VERSION 0.0.1 # Author: jgybzx # 基础镜像使用java FROM java:8 # 作者 MAINTAINER jgybzx <*****> # 运行jar包 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/data/isworkday/isworkday.jar"]
- 构建镜像。复制Dockerfile文件到服务器,路径就是Dockerfile里边ENTRYPOINT写的路径 /data/isworkday/,将打包好的jar包放到改目录下。在当前目录执行下面命令即可(注意,名字后边有 空格 加 一个 “.”)
docker build -t 名字 . - 构建容器,并启动
docker run --name isworkday -p 8888:8888 -v /data/isworkday/:/data/isworkday/ -v /data/isworkday/log/:/data/isworkday/log/ -d isworkday
之后如果代码有变化,就直接更换jar,然后重启容器即可
docker restart 容器名字 - docker logs -f 容器名字 可以实时查看日志。



