Docker的基本使用和SpringBoot项目部署,2021大厂Java高级面试题及答案

  • Registry 仓库服务注册(远程服务器,保存大量仓库)

  • Repository 仓库(保存镜像文件的位置)

  • Image 镜像(保存进程或软件的文件)

  • Container 容器(镜像运行后的进程)

Docker采用C/S模式(客户端/服务器模式),主要操作有build(构建)、pull(拉取)、run(运行),如用户需要使用mysql,就通过客户端连接主机,主机中的守护进程就会到远程服务注册中拉取mysql,保存到主机中镜像文件中,然后对mysql镜像进行构建,构建完成的镜像就可以创建出mysql容器,运行中的mysql容器就可以为用户提供服务。

3、安装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

6、配置镜像

加速镜像下载,创建或修改 /etc/docker/daemon.json 文件,修改为如下形式

{

“registry-mirrors”: [

“https://registry.docker-cn.com”,

“http://hub-mirror.c.163.com”,

“https://docker.mirrors.ustc.edu.cn”

]

}

7、重启

systemctl restart docker

4、Docker的基本使用

===========================================================================

常用Docker命令

docker images 查看镜像

docker search 镜像名称 搜索镜像

docker ps 查看容器

docker stop 容器id 停止容器

docker rm 容器id 删除容器

docker rmi 镜像id 删除镜像

docker run 镜像id 运行镜像

docker pull 镜像名 拉取镜像

docker build 镜像名 . 创建镜像

1) 抓取仓库

docker pull library/hello-world

2) 查看镜像

docker images

4) 运行镜像

docker run hello-world

在这里插入图片描述

5、Docker安装MySQL

=============================================================================

1)安装MySQL

docker pull 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脚本

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

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;

  1. 退出mysql和docker

exit

6、在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

/

${project.build.directory}

${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”]

内容讲解:

FROM java:8是获取到远程仓库的jdk1.8镜像。

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 镜像名称 .

4) 查看镜像

docker images

5)运行镜像

docker run --rm -p 8080:8080 --link mysql容器ID:localhost docker镜像名称或ID

–rm 表示容器会自动删除

-p表示端口映射,冒号左边为docker容器外的端口号,右边为容器内的端口号

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值