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
===========================================================================
常用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
=============================================================================
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脚本
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;
- 退出mysql和docker
exit
======================================================================================
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 镜像名称 .
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
4) 查看镜像
docker images
5)运行镜像
docker run --rm -p 8080:8080 --link mysql容器ID:localhost docker镜像名称或ID
–rm 表示容器会自动删除
-p表示端口映射,冒号左边为docker容器外的端口号,右边为容器内的端口号
-d表示后台运行
–link 表示连接mysql容器(如果项目不需要数据库,可以去掉),冒号左边是mysql容器的id后面是容器的别名,这样jdbcUrl中配置的localhost会转换到mysql的docker容器上
6) 解决Docker不能联网问题
启动项目后如果出现下面提示,表示Docker的网络出现问题
解决方法
vi /etc/sysctl.conf
添加ipv4转发
net.ipv4.ip_forward=1
重启网络
service network restart
重新启动Docker镜像后通过浏览器测试
7) 保存镜像到远程仓库