docker基础学习三
一、Dockerfile学习
由一系列的参数和命令构成的脚本。这些命令应用于基础镜像并最终创建一个新的镜像。基础镜像就是操作系统级别的镜像。
- 常用命令
FROM image_name:tag | 定义了使用哪个基础镜像启动构建流程 |
---|---|
MAINTAINER user_name | 声明镜像的创建者 |
ENV key value | 设置环境变量 (可以写多条) |
RUN command | 是Dockerfile的核心部分(可以写多条) |
ADD source_dir/file dest_dir/file | 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压 |
COPY source_dir/file dest_dir/file | 和ADD相似,但是如果有压缩文件并不能解压 |
WORKDIR path_dir | 设置工作目录 |
- 使用脚本创建镜像
//创建目录 mkdir –p /docker/dockerjdk8 //通过ftp上传一个jdk到dockerjdk8目录里面 //创建一个名为Dockerfile文件 vi Dockerfile //配置Dockerfile文件 #依赖镜像名称和ID FROM centos:7 #指定镜像创建者信息 MAINTAINER YANGK #切换工作目录 WORKDIR /docker RUN mkdir /docker/java #ADD 是相对路径jar,把java添加到容器中 ADD jdk-8u131-linux-x64.tar.gz /docker/java #配置java环境变量,如果不知道jdk解压之后的命令,可以在宿主机解压看看 ENV JAVA_HOME /docker/java/jdk1.8.0_131 ENV JRE_HOME $JAVA_HOME/jre ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ENV PATH $JAVA_HOME/bin:$PATH
//执行命令构建镜像 docker build -t=‘jdk1.8‘ . -t:指定镜像名称 .指定Dockerfile的文件夹,当前目录就有,所以这个点就指代当前目录 //查看镜像是否创建成功 docker images
二、构建私有仓库
- 搭建私有仓库
//搜索镜像 docker search registry //拉取镜像 docker pull registry //启动私有仓库容器 docker run -di --name=registry -p 5000:5000 registry
查看私有仓库是否搭建成功,打开浏览器访问http://centosIP:5000/v2/_catalog 看到{"repositories":[]}表示搭建成功
修改daemon.json,让docker信任私有仓库地址
//修改daemon.json vi /etc/docker/daemon.json //增加如下内容 "insecure-registries":["centosIP:5000"] //重启docker服务 systemctl restart docker
- 镜像上传至私有仓库
//标记此镜像为私有仓库的镜像 docker tag jdk1.8 centosIP:5000/jdk1.8 //再次启动私服容器 docker start registry 上传标记的镜像 docker push centosIP:5000/jdk1.8
再次访问仓库
三、通过Maven插件自动部署
- 修改宿主机的docker配置,让其可以远程访问
//让docker可以远程访问,docker默认关闭远程操作。 vi /lib/systemd/system/docker.service 其中在ExecStart=后添加配置-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
//刷新配置,重启服务 systemctl daemon-reload systemctl restart docker docker start registry
- 创建一个Maven项目
//配置maven插件 <build> <finalName>dockerDemo</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configuration> <!-- 生成的镜像名称 --> <imageName>192.168.100.128:5000/${project.artifactId}:${project.version}</imageName> <!-- 基础镜像 相当于FROM jdk1.8--> <baseImage>jdk1.8</baseImage> <!-- 入口点 相当于ENTRYPOINT ["java","-jar","/dockerDemo.jar"]--> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <!-- 创建路径,target路径--> <directory>${project.build.directory}</directory> <!-- dockerDemo.jar 相当于ADD dockerDemo.jar /--> <include>${project.build.finalName}.jar</include> </resource> </resources> <dockerHost>http://192.168.100.128:2375</dockerHost> </configuration> </plugin> </plugins> </build>
- 部署到docker服务和私服上
//进入项目工程目录下,将项目安装到本地仓库 mvn install //输入以下命令,进行打包和上传镜像 mvn docker:build -DpushImage
- 启动容器
docker run -di --name=demo -p 9002:8080 192.168.100.128:5000/demo:0.0.1-SNAPSHOT
创建的是sprinboot项目默认端口是8080,
四、Jenkins学习
- Jenkins是什么
Jenkins是一个持续集成的工具,能从代码仓库中获取并产生代码更新列表并输出到编译输出信息。生成JUnit/TestNG测试报告,也就是用以图表等形式提供详细的测试报表功能。支持第三方插件,使得 Jenkins 变得越来越强大 - 安装配置登录,需要JDK支持
下载地址:
//安装 rpm -ivh jenkins-2.183-1.1.noarch.rpm //配置修改用户和端口 vi /etc/sysconfig/jenkins JENKINS_USER="root" JENKINS_PORT="9909"
//启动服务,如果报错可以根据提示找到错误原因 systemctl start jenkins //重启服务 systemctl daemon-reload //查看启动状态 systemctl status jenkins //获取初始密码 cat /var/lib/jenkins/secrets/initialAdminPassword
启动的时候失败,通过 systemctl status jenkins。看到是没有找到JDK(这个JDK我默然安装不是/usr/bin/java)
修改 vi /etc/init.d/jenkins,增加JDK路径
获取登录密码
启动等成成功出现这个页面,原因就是在插件管理器中检查了更新站点 ,使用了https,将它改成http就行了
//通过这个命令找到更新文件的路径 find / -name "hudson.model.UpdateCenter.xml" //修改 vi /var/lib/jenkins/hudson.model.UpdateCenter.xml
重启Jenkins,就可以下载插件了
- 安装插件
上面哪一步之后就已经默认安装了一些插件,比如git之类的。下面安装一个Maven插件
选中之后直接点击下方的直接安装就可以了
- 全局工具配置
jenkins能够持续集成其实是调用maven插件,执行maven命令来达到这种集成效果- 安装Maven
下载地址:
- 安装Maven
//解压 tar -zxvf apache-maven-3.6.1-bin.tar.gz //配置本地仓库 vi /yangk/apache-maven-3.6.1/conf/settings.xml
- 工具配置
找到jenkins的全局工具配置
配置JDK,GIT,Mvane
Git之前已经默认安装在Jenkins了,所以用默认的就可以了
- 任务的创建与执行
在执行这一步之前,我将一个普通的项目上传到git服务器里面了。- 新建项目
- 新建项目
填写项目在Git的地址
找到这个项目pom.xml的位置,提前输入好项目编译启动命令,然后保存就可以了。
点击红框地方就可以启动这个任务了,我这边出现红色球和阴雨天的标识是因为我启动失败了,git的账号和密码没有配置
可以在左边看到这个项目的进度,点击进度条可以进去看到详细进度。如果全部配置成功之后就可以在docker看到完成的镜像了。也是需要在pom里面提前配置好的。
相关推荐
魅惑青花瓷 2020-11-11
yangkang 2020-11-09
MichaelJScofield 2020-11-06
TaoTaoFu 2020-11-06
liaochaowu 2020-11-16
ChlatZed 2020-11-11
lnkToKing 2020-10-29
ChlatZed 2020-10-27
ChlatZed 2020-10-13
时光流水 2020-09-23
yangkang 2020-09-23
changecan 2020-09-22
dusuanyun 2020-09-21
newisI 2020-09-01
liaochaowu 2020-09-14
ShangQuan0 2020-09-10
fearlessxjdx 2020-09-04
libra0 2020-09-02
ChlatZed 2020-08-23