前端 docker + gitlab CI 的持续集成(二)
关于docker的基本概念,请查看docker + Gitlab CI 的持续集成(一)
一、安装docker
docker 安装教程很多, git地址 搜download有很多方式下载,这里就不赘述了,同样可以使用免安装的包 安装好以后检查版本
docker version
复制代码
打印类似以下信息,恭喜你,千里之行已经开始了第一步
[root@VM_0_12_centos ~]# docker version
Client:Version: 17.05.0-ceAPI version: 1.29Go version: go1.7.5Git commit: 89658beBuilt: Fri May 5 15:36:11 2017OS/Arch: linux/amd64
复制代码
二、启动第一个容器
1、查找需要的image(以nginx为例)
docker search nginx
复制代码
docker 市场上会有很多相关的image,没有特殊需求的话,使用官方的即可
[root@VM_0_12_centos ~]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 9563 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1400 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 611 [OK]
jrcs/letsencrypt-nginx-proxy-companion LetsEncrypt container to use with nginx as... 405 [OK]
kong Open-source Microservice & API Management ... 224 [OK]
webdevops/php-nginx Nginx with PHP-FPM 113 [OK]
kitematic/hello-world-nginx A light-weight nginx container that demons... 108
复制代码
2、下载iamge
docker pull nginx
复制代码
nginx可以指定版本号,写法为
docker pull nginx:版本号
复制代码
不指定的话默认为latest最新版本
3、查看下载好的image
docker images
复制代码
[root@VM_0_12_centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest c82521676580 6 weeks ago 109MB
复制代码
4、启动容器
docker run -d -p 80:80 --name nginx -v $PWD/dist/:/usr/share/nginx/html nginx
复制代码
- docker run 创建一个容器,里面运行一个镜像
- -d 容器能运行在后台,即守护进程
- -p 将容器对外的端口与宿主机的端口做映射 此处访问宿主机的80端口 其实就是访问容器的80端口
- —name 容器的名字,不写会自动生成随机的名字
- -v 可以理解为容器路径的映射,冒号前的宿主机的路径、冒号后的为容器内的路径,最终访问的是容器内/usr/share/nginx/html下的内容,启动容器时会自动从宿主机路径下同步到容器内
- nginx 是 pull 好的image镜像
5、查看启动的容器列表
docker ps
复制代码
[root@VM_0_12_centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d94ee9b43d3 nginx "nginx -g 'daemon ..." 2 weeks ago Up 2 weeks 0.0.0.0:80->80/tcp nginx
复制代码
此时访问服务器 ip 已经可以访问了,只不过nginx的根目录下没有文件,会提示nginx已经 ready
以上讲了直接使用仓库提供的镜像,那么怎么制作自己的image呢?
三、制作镜像
我们启动一个node服务就需要制作,因为是基于node的image的 1、在需要制作image的项目根目录创建Dockerfile文件,这里我们以node+koa的service项目为例 Dockerfile写入内容如下
FROM node:latestRUN mkdir -p /home/ServiceCOPY . /home/ServiceWORKDIR /home/ServiceEXPOSE 8000RUN npm installCMD ["npm","start"]
复制代码
- FROM 即基础镜像
- RUN 执行该命令
- COPY 复制当前的内容到 文件夹
- WOEKDIR docker的工作目录
- EXPOSE 对外端口
- CMD 执行脚本
2、在Dockerfile文件所在目录执行build命令
docker build -t testImage .
复制代码
build 完成即可用命令查看image
docker images
复制代码
启动一下看看
docker run -d -p 5000:8000 --name testimage testimage
复制代码
大家还可以关注我的博客无声的博客
转载于:https://juejin.im/post/5b9f79c15188255c980bc937
前端 docker + gitlab CI 的持续集成(二)相关推荐
- 『中级篇』docker之CI/CD持续集成-(终结篇)(77)
原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker之CI/CD持续集成-(终结篇)(77) 今天是中级终结篇的最后一次了,想想在二个月的时间,每天的坚持学 ...
- 『中级篇』docker之CI/CD持续集成-项目生成镜像(76)
原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker之CI/CD持续集成-项目生成镜像(76) 开始想用docker registry做私有镜像库,后来放弃 ...
- docker GitLab-runner CI/CD持续集成
docker GitLab-runner CI/CD持续集成 docker GitLab-runner CI/CD持续集成 机器配置 gitlab安装 拉取镜像 创建挂载目录 启动容器 注册gitla ...
- ci持续集成工程师前景_『中级篇』docker之CI/CD持续集成-项目生成镜像(76)
开始想用docker registry做私有镜像库,后来放弃了,知道的老铁应该知道这个玩意没有界面很不爽,后来选择了Harbor,还是通过vagrant 创建一个虚拟服务器,这样下来一共创建3个了,也 ...
- Docker + GitLab CI/CD 实现自动化部署
使用Docker+gitlab ci/cd 实现自动化部署 文章目录 使用Docker+gitlab ci/cd 实现自动化部署 1. Docker 1.1 Docker是什么? 1.2 Docker ...
- 晨光科力普基于GitLab CI/CD持续集成服务的应用
科力普省心购是晨光文具集团在2019年初为了拓展综合办公物资采购业务成立的B2B电商平台.随着云时代容器技术的火热发展,Docker.Kubernetes等容器化技术越来越受到研发团队的喜爱.因此,省 ...
- Android架构篇-5 CI/CD(持续集成、持续交付、持续部署)
Android架构篇-5 CI/CD(持续集成.持续交付.持续部署) CI CI是指持续集成,代码的更新会定期自动构建.测试并合并到公共仓库中,方便多分支时解决冲突问题 CD CD是指持续交付和/或持 ...
- iOS架构篇-5 CI/CD(持续集成、持续交付、持续部署)
iOS架构篇-5 CI/CD(持续集成.持续交付.持续部署) CI CI是指持续集成,代码的更新会定期自动构建.测试并合并到公共仓库中,方便多分支时解决冲突问题 CD CD是指持续交付和/或持续部署, ...
- centos7下Gitlab+Jenkins部署持续集成CI环境
1.基本环境 主机:win10,IP:192.168.0.111:部署机器centos7,IP:192.168.0.65: 内存推荐到8G,实测需要6G以上,以免出现内存不够用而报错. 2.安装git ...
- (六)构建Docker私有仓库、Gitlab仓库和持续集成环境
环境说明 IP 功能 eth0:192.168.124.139 eth1:172.16.100.10 Docker私有仓库.Gitlab.持续集成 eth0:192.168.124.138 eth1: ...
最新文章
- Retrofit 找不到 GsonConverterFactory
- jsp中如何运行java_从上帝视角看Java如何运行
- Win32 汇编要点总结
- 自己动手实现一个简单的JSON解析器
- 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能...
- yum 升级curl_CentOS 6/7 更新curl
- 解决mac osx下pip安装ipython权限的问题
- js清理cookie
- 副本引发的问题corrupt data exception
- 如何进行大数据分析及处理(总结)
- NTL密码算法开源库拓展——SM2算法
- SQL查询时间段方法
- 想做个可以打印的服务,想用printdocument,但是不用winform,有谁知道怎么实现吗?万分感谢!
- 数字证书原理[转载]
- 分享一些Photoshop的教程电子档(pdf格式),初学者与设计师适用
- 使用openssl命令 生成指定有效时间的ssl证书,cer格式
- java金额小写转大写金额_Java金额大小写的转换方法
- 【牛客网-公司真题-前端入门篇】——58同城2021校招笔试-前端
- 一名网络工程师尴尬的现状?
- PHP视频解析网站源码+后台
热门文章
- Atitit usrQC27模块化的规范模块化法 v4 t77 目录 1. 模块化层级(软件项目	1 1.1. 子项目》命名空间package机制》类》类文件》方法函数级别》语句	1 2. 常见的
- Atitit httpclient 概述 rest接口 目录 1. Httpclient 利用http协议的client类库与技术方法	1 2. 功能用途 why	2 2.1. 上传下载文件	2
- paip.验证码识别---判断图片是否是彩色图片
- paip.提升开发效率----JAVA网站
- python生成公共包(SDK)
- Rust : 性能测试criterion库
- 如何将 KVM 异构虚拟机启动效率提升 6~10 倍?
- 疫期免费 “零接触”云迁移~工具替代人力! 人不聚,活儿继续!
- 【语音去噪】基于matlab谱减法+最小均方+维纳滤波语音去噪【含Matlab源码 1542期】
- 【图像去噪】基于matlab全变分算法图像去噪【含Matlab源码 1324期】