Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!

Docker 安装

  1. 查看你的centos 版本
    cat /etc/redhat-release
    在这里插入图片描述
  2. 具体安装过程参考:
链接:https://pan.baidu.com/s/136LYscEj6KhMzZ1vJ-ZpxA 
提取码:tcdd
  1. 启动 Docker
    systemctl start docker
  2. 测试
    docker version
    Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第1张图片
    docker run hello-world

Dockerfile 讲解

Docker 文件描述,类似于 java面向对象中类是实例的描述一样。

参数介绍

FROM : 基础镜像
MAINTAINER: 维护者信息,可以写邮箱地址、公司地址

ADD : 添加文件或文件夹到容器,可以解压 tar.gz, (不可解压zip)
COPY: 复制文件或文件夹到容器

ENV: 设置环境变量

VOLUME : 数据卷目录,用于保存或数据持久化

EXPOSE: 容器对外提供端口

RUN: 构建镜像是运行命令

WORKDIR: 进入容器后的目录地址

可执行SHELL命令和 EXEC 命令,容器启动后执行命令
CMD
ENTRYPOINT

ONBUILD: 构建一个被继承 Dockerfile 时运行命令,父镜像在子镜像继承后触发

示例

一个简单的示例:
文件名必须是Dockerfile
在这里插入图片描述


## 基础镜像,以Tomcat为基础镜像
FROM tomcat

###  维护者信息,公司地址或个人地址等
MAINTAINER    [email protected]

### ADD 和COPY 的区别,都是复制,但是ADD 具有解压包的功能
ADD hiup-research.tar.gz   /home/hiup/research/

# 添加 jdk 到容器,tomcat 镜像自带jdk 为11,所以手动更改为8
ADD jdk-8u141-linux-x64.tar.gz /home/hiup/research

# 配置jdk环境变量
ENV JAVA_HOME /home/hiup/research/jdk1.8.0_141
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

#  数据卷目录
VOLUME  /tmp

# 进入容器后的目录
WORKDIR  /home/hiup/research

###声明开放端口号
EXPOSE 8080

# 设置构建镜像时运行的命令
RUN ["echo","image starting!!!"]

###配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","/app-springboot.jar"]

# 设置启动容器时运行的命令, 启动Tomcat ,启动 research-web 程序
### 默认 tomcat 镜像,不用手动执行 catalina.sh  ,启动容器就启动 tomcat。
## SHELL 命令
# CMD  echo container starting!!!
## EXEC 命令
# CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
# CMD /home/hiup/research/apache-tomcat-8.0.23/bin/catalina.sh run

Docker 操作

  1. 构建镜像
    格式: docker build -t [镜像名称] . (. 代表当前目录)
    命令: docker build -t test .
    如图:
    Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第2张图片
  2. 运行镜像
    格式: docker run [ 镜像名称]
    命令: docker run test
    如图:
    Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第3张图片
    守护线程(后台)启动镜像:
    格式: docker run -d [镜像名称] -d 代表后天进程
    命令:docker run -d test
    在这里插入图片描述
  3. 查看镜像列表 docker images
    在这里插入图片描述
  4. 查看启动的容器: docker ps
    在这里插入图片描述
    查看所有的容器 docker ps -a
  5. 进入容器内
    格式:docker exec -it [容器id] bin/bash
    命令:docker exec -it 1c2e82d16284 /bin/bash
    在这里插入图片描述

idea 整合 Docker 一键部署打包容器

配置Docker 插件

  1. idea高版本有Docker 插件。查看idea 是否有插件。
    ctrl + alt + s
    Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第4张图片
    如果没有这个就去 plugins – install - restart 即可
    Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第5张图片
  2. 配置Docker
    ① 开放端口
1.进入目录
 vim /lib/systemd/system/docker.service
 2. 开放2375端口
 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
 3.重启守护进程
 systemctl daemon-reload
 4.重启docker
 systemctl restart docker
 5.验证端口,如下图,出现 2375 端口即开通成功。
 netstat -nlpt

Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第6张图片

②添加Docker地址如图所示
Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第7张图片
③ idea下方出现Docker 图标
Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第8张图片
先看下Docker插件有什么好的地方,有容器列表、镜像列表、可以手动启动、停止、删除,还有日志、端口绑定、等等。(当然通过linux来操作也行)-- 个人觉得你命令熟悉了,用这个更简单。
Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第9张图片

Docker 私有仓库搭建

基于Docker官方提供的仓库registry

创建docker 私有仓库
搭建私有仓库参考了 https://www.cnblogs.com/huanchupkblog/p/10843800.html
## 1. 将registry:2 版本为2的仓库地址pull下来
docker pull registry:2
## 2. 查看镜像
docker images
## 3. 启动
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2

## 4. 测试上传一个镜像
docker tag test:latest localhost:5050/test:latest
docker push  localhost:5050/test:latest
查看上传的镜像
cd  /opt/registry/docker/registry/v2/repositories

springboot项目打jar包
  1. 添加打包插件spring-boot-maven-plugin

        
            
                org.springframework.boot
                spring-boot-maven-plugin
                1.5.2.RELEASE
                
                 
                    com.djhu.Start
                    JAR
                
                
                    
                        
                            repackage
                        
                    
                
            
        
    
  1. 添加配置文件,如果你的mybatais中xxxMapper.xml 在和类在同一级目录,需要注意添加如下配置,如果xxxMapper.xml 在src/resources 下,跳过此步骤。
    如图:
    Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第10张图片

     
        
            
                src/main/java
                
                    **/*.xml
                
                true
            
        
     
  1. mvn - build - package 打成可执行jar包。
    Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第11张图片
  2. 测试,执行 java -jar xxx-1.0.0.jar
    运行成功,执行下边。

push 项目到远程仓库

  1. 添加 docker 插件
 



	com.spotify
	docker-maven-plugin
	1.0.0
	
		
		192.168.130.129:5000/${project.artifactId}
		java:8

		
		
			
				/
				${project.build.directory}
				${project.build.finalName}.jar
			
		

		
		http://192.168.130.129:2375

		
		${project.basedir}/src/main/resources/build
	

	
	
		
			package
			
				build
			
		
	


  1. 添加好插件后,添加Dockerfile 文件,文件名必须是这个。

路径:参考上边docker插件中 地址:${project.basedir}/src/main/resources/build
当然也可以在插件中写,不用写Dockerfile 都可以。
Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第12张图片
3. 执行 mvn - package ,打包后自动创建镜像。如图:
Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第13张图片
4. 上传到远程仓库,我的远程仓库地址是: 192,168.130.129:5000

①: 设置ip端口可远程访问
“insecure-registries”:[“192.168.130.129:5000”]
在这里插入图片描述
重启守护进程
systemctl daemon-reload
重启docker
systemctl restart docker
重启Docker 后需要重新启动 私有仓库镜像
查看本地启动容器 docker ps
查看本地所有容器 docker ps -a
启动resitry 镜像 docker start [容器id]
在这里插入图片描述
容器已启动 docker ps
在这里插入图片描述
5. 到idea中来,将springboot 项目上传到 私有仓库

idea 中 – Docker – Images – 右键选中某个镜像 – push Image —>
Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第14张图片
输入 ip:端口, 有用户名和密码的需要输入用户名和密码,邮箱随便输入一个
Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第15张图片
repository : 自定义 tag:自定义 如图:
Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第16张图片
上传中… ,如图:
Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第17张图片
验证: cd /opt/registry/docker/registry/v2/repositories/
Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第18张图片
上传成功。。。。。。。

遇到的坑

springboot 打jar包遇到的坑

  1. 添加springboot 打包插件,无法打包,打包成功后无法运行。

创建私有仓库、并将项目上传到私有仓库

  1. 私有仓库一直创建不成功
    找不到主清单,是因为插件中没有添加 repackage 和指定运行类
    Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第19张图片
  2. 上传springboot项目一直失败。
    因为没有把 src/main/java 中mybatis 的xxMapper.xml 打进jar中。
    Docker快速上手篇,看这一篇就够,你先不用知道它是什么,先用起来!!!_第20张图片

你可能感兴趣的:(Docker)