docker常用命令&springboot整合
#安装 启动
yum install docker
systemtl start docker
service docker restart
#常用命令
docker start 容器id
docker stop 容器id
docker images 查看拥有镜像
docker search mysql 搜索mysql镜像=>实际是`hub.docker.com`下搜索
docker pull nginx 仓库中拉取nginx镜像(默认拉取最新版本)
docker pull nginx:1.7.1 仓库中拉取nginx镜像(指定拉取版本号)
docker run nginx:运行nginx
-d:让后台不要阻塞住shell指令窗口,后台运行
-p:指定内外端口映射(外部端口:内部端口)
-v:将静态文件放在容器外部,修改外部文件后,容器内部文件会跟着变动。或者mysql文件被分到容器外部。
--name mynginx:取别名
案例:docker run -d -p 80:80 nginx
docker ps:查看正在运行的容器有哪些。加上-a可以查看所有容器
docker exec -it dockerID bash:进入指定镜像id(id前缀几个字符区分开就行)
exit:退出进入的镜像
docker rm -f dockerID:强制删除容器
docker rmi imageID:删除镜像
docker commit dockerID dockerImageName:根据dockerID生成镜像名为dockerImageName
docker log 容器ID 查看容器日志(主要来查看错误日志)
dockerFile:构建docker的配置文件
参数:From:(必须),基于什么镜像构建镜像 workdir:shell语句运行在哪个路径下
copy:当当前宿主主机山该软件copy到镜像中去 run:构建时允许shell语句
cmd:指定整个镜像启动起来允许的脚本
docker save m2>1.tar 将镜像名为m2的打包成1.tar
docker load m2<1.tar tar文件转镜像
springboot整合
pom.xml文件配置
<properties>
<!--项目名 -->
<docker.image.prefix>demo</docker.image.prefix>
<!-- docker私服地址 -->
<docker.registry>hub.sinogoodies.com</docker.registry>
<!-- 运行main方法入口 -->
<start-class>com.example.demo.DemoApplication</start-class>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.1.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
<mainClass>${start-class}</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.10</version>
<configuration>
<repository>${docker.registry}/${docker.image.prefix}/${project.artifactId}</repository>
<tag>${project.version}</tag>
<username>jfl</username>
<password>Jfl@6688</password>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
Dockerfile文件内容:
#jdk版本
FROM hub.sinogoodies.com/library/centos8-jdk8:v3
EXPOSE 8080
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} app.jar
ENTRYPOINT [“java”,”-jar”, “/app.jar”]
使用说明
- 系统环境变量需要进行配置: DOCKER_HOST=tcp://172.16.2.78:2375
- Dockerfile文件放在pom.xml同级目录
- maven->Plugins->dockerfile (bulid和push将项目推送到镜像仓库)
参考资料
拓展(maven在settings.xml中存储加密的密码避免密码泄露) https://blog.csdn.net/fragrant_no1/article/details/84335600
docker-maven-plugin使用 https://www.jianshu.com/p/3b91b8958c3e