项目部署

安装Docker
1、删除旧版本的docker
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-selinux
docker-engine-selinux
docker-engine

2、安装依赖包
yum install -y yum-utils
device-mapper-persistent-data
lvm2
3、安装docker
yum install docker

4、启动docker
systemctl enable docker
systemctl start docker

5、查看安装结果
docker version
Docker简单使用
1、抓取仓库
docker pull library/hello-world
2、查看镜像
docker images
4、运行镜像
docker run hello-world

加速镜像下载
创建或修改 /etc/docker/daemon.json 文件,修改为如下形式
{
“registry-mirrors”: [
“https://registry.docker-cn.com”,
“http://hub-mirror.c.163.com”,
“https://docker.mirrors.ustc.edu.cn”
]
}
重启服务:
systemctl restart docker

Docker安装MySQL数据库
1)安装MySQL
docker pull mysql:5.7
国内
docker pull registry.cn-hangzhou.aliyuncs.com/sherry/mysql:5.7

2)运行MySQL镜像
    docker run  -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql镜像ID
    -p 后面的端口是本机端口,映射到docker中MySQL的3306端口,后面设置了root密码
    -d 是后台运行 
3)查看容器ID
    docker ps

4)上传数据库脚本到Linux,然后将脚本复制到docker的root目录中
    docker cp bookdb.sql 21db7dd6618e:\root
5)进入docker容器
    docker exec -it  21db7dd6618e bash
6)进入MySQL
    mysql -uroot -p123456
7)设置编码、创建数据库
    set names utf8;
    create database bookdb;
    use bookdb;
8)导入sql脚本
    source /root/bookdb.sql;
9)修改远程访问权限:
    select host,user,plugin,authentication_string from mysql.user;
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    flush privileges;
10) 退出mysql和docker
    exit

相关Docker命令
docker images 查看镜像
docker search 镜像名称 搜索镜像
docker ps 查看运行的容器
docker stop 容器id 停止容器
docker rm 容器id 删除容器
docker rmi 镜像id 删除镜像
docker run 镜像id 运行镜像
docker pull 镜像名 拉取镜像
docker build 镜像名 . 创建镜像

在docker上部署springboot项目
1)修改pom文件
首先在springboot项目的pom.xml文件中添加Docker镜像名称:

<docker.image.prefix>springboot</docker.image.prefix>

在plugin中添加docker构建插件:



org.springframework.boot
spring-boot-maven-plugin



com.spotify
docker-maven-plugin
1.0.0

d o c k e r . i m a g e . p r e f i x / {docker.image.prefix}/ docker.image.prefix/{project.artifactId}
src/main/docker


/
p r o j e c t . b u i l d . d i r e c t o r y < / d i r e c t o r y > < i n c l u d e > {project.build.directory}</directory> <include> project.build.directory</directory><include>{project.build.finalName}.jar







2)创建Dockerfile文件
FROM java:8
VOLUME /tmp
COPY jar文件名 app.jar
RUN bash -c “touch /app.jar”
EXPOSE 8080
ENTRYPOINT [“java”, “-jar”, “app.jar”, “–spring.profiles.active=test”, “–server.port=8080”, “> /log/app.log”]
解释:
java:8是指Docker Hub上官方提供的java镜像,版本号是8也就是jdk1.8,有了这个基础镜像后,Dockerfile可以通过FROM指令直接获取它的状态——也就是在容器中java是已经安装的,接下来通过自定义的命令来运行Spring Boot应用:
VOLUME指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。效果就是在主机的/var/lib/docker目录下创建了一个临时文件,并连接到容器的/tmp。
将项目的jar文件作为app.jar添加到容器
RUN表示在新创建的镜像中执行一些命令,然后把执行的结果提交到当前镜像。这里使用touch命令来改变文件的修改时间,Docker创建的所有容器文件默认状态都是“未修改”。这对于简单应用来说不需要,不过对于一些静态内容(比如:index.html)的文件就需要一个“修改时间”。
EXPOSE 容器暴露端口
ENTRYPOINT 应用启动命令 参数设定
3) 创建docker文件夹,将jar包与Dockerfile移动到该文件夹,进入该文件夹,运行命令:
docker build -t docker镜像名称 .
将该项目构建成一个image(镜像)
docker images
可以查看对应的镜像信息:
4)运行镜像:
docker run -bit --rm -p 8080:8080 --link mysql容器ID:localhost docker镜像名称或ID
–rm 表示容器会自动删除 -bit可有可无,他的作用是关闭后台也可以访问。 -p表示端口映射,冒号左边为docker容器外的端口号,右边为容器内的端口号,-d表示后台运行 mydocker表示镜像名称 --link 表示连接mysql容器,冒号左边是mysql容器的id后面是容器的别名,这样jdbcUrl中配置的localhost会转换到mysql的docker容器上

保存容器为镜像
docker commit 容器id 镜像名称;
保存MySQL的数据
挂载docker中mysql文件到本地
docker run -d -e MYSQL_ROOT_PASSWORD=root -v /data/mysql/data:/var/lib/mysql -p 3306:3306 xray/mysql5.7
docker添加容器时,使用 -v 挂载时无法启动容器
原因:
CentOS7中的安全模块selinux把权限禁掉了,无法使用-v命令进行挂载
解决方法:
添加selinux规则,将要挂载的目录添加到白名单
chcon -Rt svirt_sandbox_file_t /data/mysql/data
提交镜像到docker hub
登录
docker login
docker push 镜像名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值