一、安装

1. 安装 docker

Docker下载

注意:Windows 10 家庭版获取 之前的版本不能直接安装 Docker ,而是需要去安装 Docker Toolbox

我这里安装的是 Docker Toolbox。按照这个安装教程进行安装 ,安装教程

安装完成之后,(由于我电脑之前就安装了 git ,所以在安装过程中并没有勾选 git 安装)

如果安装成功之后,在验证安装时,点击桌面快捷方式不管用。可以到安装目下直接双击运行 start.sh 。

2. 安装 gitlab-runner

由于公司代码管理使用 Gitlab 进行,所以没有在本地安装 gitlab。

我们先查看一下 docker 的安装信息:

用docker in docker 的方式安装运行gitlab-runner

在命令行中输入:

docker pull gitlab/gitlab-runner

拉取gitlab-runner镜像,等待完成。

然后再输入:

docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest

创建并运行gitlab-runner容器。

3. 配置 gitlab-runner

在命令行中输入以下命令注册一个新的Runner实例:

docker exec -it gitlab-runner gitlab-runner register

开发项目 gitlab 地址 和 gitlab-ci token 都可以在gitlab项目中查看:

runner 配置完成之后,就可以在给gitlab 中看到你的 runner

到这里就为 gitlab 中的项目配置了一个 docker 环境下的 runner。不过从上图可以看出为这个工程配置的 runner 只是服务与当前项目的。但是 runner 中有共享的 runner 。如何创建共享的 runner 会后续更新。如果这篇文章有帮到你,点个赞,加个关注。

这里再加个提醒,如果项目已经配置 ci 脚本,发现提交代码之后,ci 一直处于 pending状态,有一个 struct 的标识。很有可能是你的 runner 中有一项配置没有打开:

参考:

Windows下使用docker部署gitlab CI服务

附:Docker 简单命令:

1. 列出所有容器ID

docker ps -aq

2. 查看所有运行或者不运行容器

docker ps -a

3. 停止所有的container(容器),这样才能够删除其中的images:

docker stop $(docker ps -a -q) 或者 docker stop $(docker ps -aq)

3. 如果想要删除所有container(容器)的话再加一个指令:

docker rm $(docker ps -a -q) 或者 docker rm $(docker ps -aq) 

4. 查看当前有些什么images

docker images

5. 删除images(镜像),通过image的id来指定删除谁

docker rmi <image id>

6. 想要删除untagged images,也就是那些id为的image的话可以用

docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

7. 要删除全部image(镜像)的话

docker rmi $(docker images -q)

8. 强制删除全部image的话

docker rmi -f $(docker images -q)

9. 从容器到宿主机复制

docker cp tomcat:/webapps/js/text.js /home/admin
docker cp 容器名: 容器路径 宿主机路径

10. 从宿主机到容器复制

 docker cp /home/admin/text.js tomcat:/webapps/js
docker cp 宿主路径中文件 容器名 容器路径

11. 删除所有停止的容器

docker container prune

12. 删除所有不使用的镜像

docker image prune --force --all或者docker image prune -f -a

13. 停止、启动、杀死、重启一个容器

 docker stop Name或者ID
docker start Name或者ID
docker kill Name或者ID
docker restart name或者ID

14. 修改配置、退出容器

1、如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器
2、如果使用exit退出,那么在退出之后会关闭容器,可以使用下面的流程进行恢复
使用docker restart命令重启容器
使用docker attach命令进入容器

推荐:

Gitlab部署CI并使用.gitlab-ci.yml配置您的作业

Windows 下 docker 部署 gitlab ci的更多相关文章

  1. windows下docker部署报错

    报错信息:Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:8848 -> 0.0.0 ...

  2. Tars | Win10下Docker部署TarsJava(SpringBoot)全过程及踩坑记录

    @ 目录 前言 1. 相关环境版本: 坑点一:VMware与Win10 Docker冲突 坑点二:20.版本TarsJava(SpringBoot)依赖文件缺失 2. Docker安装: 坑点三:Do ...

  3. windows下rsync部署安装

    windows下rsync部署安装 2012-06-05 12:06:13|  分类: 系统 |  标签:rsync  windows   |字号 订阅   rsync在windows与windows ...

  4. Windows下docker的安装,将ASP.NET Core程序部署在Linux和Docker中

    参考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html docker for windows下载连接: htt ...

  5. windows下Docker的安装

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  6. docker部署gitlab

    Docker部署gitlab 一.前提条件 (1)     存在docker (2)     服务器可以联网(外网) (3)     服务器内存至少4G(内存不够会出现502错误) 内存不足502错误 ...

  7. K8s 部署 Gitlab CI Runner

    K8s 版本:1.20.6 GitLab CI 最大的作用是管理各个项目的构建状态.因此,运行构建任务这种浪费资源的事情交给一个独立的 Gitlab Runner 来做就会好很多,而且 Gitlab ...

  8. Windows下docker的安装以及遇到的问题

      最近因为业务的需要,需要在本地搭建服务环境测试,不想去安装各种软件,于是就想到了用docker来满足我的需要.由于第一次在Windows下安装(以前一直是在linux下使用,但由于内存等硬件的限制 ...

  9. windows下docker的安装及常用命令学习

    docker search 镜像名 本文主要介绍Docker在Windows下的安装.关于Docker的介绍和文档在其官网中可以找到:http://www.docker.com .安装环境:Windo ...

随机推荐

  1. python类与对象-如何创建可管理的对象属性

    如何创建可管理的对象属性 问题举例 在面向对象编程中, 我们把方法看作对象的接口, 直接访问对象的属性可能是不安全的,或设计上不够灵活. 但是使用调用方法在形式上不如访问属性简洁. circle.ge ...

  2. 2018-2019 20175232 实验二《Java面向对象程序设计》实验报告

    一.实验内容及步骤 1熟练掌握Junit和TDD: TDD(Test Driven Devlopment, 测试驱动开发)我们是该“先写产品代码,然后再写测试代码,通过测试发现了一些Bugs,修改代码 ...

  3. java操作Jacoco合并dump文件

    记录瞬间 import org.apache.maven.plugin.MojoExecutionException; import org.jacoco.core.tools.ExecFileLoa ...

  4. 25 range打印100到0的连续整数

    使用range打印100,99,98,...0for i in range(100,-1,-1): print(i)

  5. CLASS类继承

    单继承:# class People: 经典类class People(object): #新式类 def __init__(self,name,age,n=1000): self.name = na ...

  6. maven中target不能访问

    原因是maven  clean的时候已经把target文件夹删除  但是文件夹还存在页面中  所以我们看得到但是不能打开.正常操作是获得管理员权限删除后再重新clean,但是我电脑有360,直接360 ...

  7. 20175208 《Java程序设计》第六周学习总结

    20175208 <Java程序设计>第六周学习总结 一.教材知识点总结: 第七章 1.内部类: 成员内部类.静态嵌套类.方法内部类.匿名内部类 .(1).内部类仍然是一个独立的类,在编译 ...

  8. CCF CSP 201609-2 火车购票

    题目链接:http://118.190.20.162/view.page?gpid=T46 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排 ...

  9. setInterval中this

    今天使用react做钟表,自然用到了setInterval,但是出现this指向不明的问题. <html> <head> <meta charset="UTF- ...

  10. Haystack全文检索

    1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch(java写的 ...