关于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 的持续集成(二)相关推荐

  1. 『中级篇』docker之CI/CD持续集成-(终结篇)(77)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker之CI/CD持续集成-(终结篇)(77) 今天是中级终结篇的最后一次了,想想在二个月的时间,每天的坚持学 ...

  2. 『中级篇』docker之CI/CD持续集成-项目生成镜像(76)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker之CI/CD持续集成-项目生成镜像(76) 开始想用docker registry做私有镜像库,后来放弃 ...

  3. docker GitLab-runner CI/CD持续集成

    docker GitLab-runner CI/CD持续集成 docker GitLab-runner CI/CD持续集成 机器配置 gitlab安装 拉取镜像 创建挂载目录 启动容器 注册gitla ...

  4. ci持续集成工程师前景_『中级篇』docker之CI/CD持续集成-项目生成镜像(76)

    开始想用docker registry做私有镜像库,后来放弃了,知道的老铁应该知道这个玩意没有界面很不爽,后来选择了Harbor,还是通过vagrant 创建一个虚拟服务器,这样下来一共创建3个了,也 ...

  5. Docker + GitLab CI/CD 实现自动化部署

    使用Docker+gitlab ci/cd 实现自动化部署 文章目录 使用Docker+gitlab ci/cd 实现自动化部署 1. Docker 1.1 Docker是什么? 1.2 Docker ...

  6. 晨光科力普基于GitLab CI/CD持续集成服务的应用

    科力普省心购是晨光文具集团在2019年初为了拓展综合办公物资采购业务成立的B2B电商平台.随着云时代容器技术的火热发展,Docker.Kubernetes等容器化技术越来越受到研发团队的喜爱.因此,省 ...

  7. Android架构篇-5 CI/CD(持续集成、持续交付、持续部署)

    Android架构篇-5 CI/CD(持续集成.持续交付.持续部署) CI CI是指持续集成,代码的更新会定期自动构建.测试并合并到公共仓库中,方便多分支时解决冲突问题 CD CD是指持续交付和/或持 ...

  8. iOS架构篇-5 CI/CD(持续集成、持续交付、持续部署)

    iOS架构篇-5 CI/CD(持续集成.持续交付.持续部署) CI CI是指持续集成,代码的更新会定期自动构建.测试并合并到公共仓库中,方便多分支时解决冲突问题 CD CD是指持续交付和/或持续部署, ...

  9. centos7下Gitlab+Jenkins部署持续集成CI环境

    1.基本环境 主机:win10,IP:192.168.0.111:部署机器centos7,IP:192.168.0.65: 内存推荐到8G,实测需要6G以上,以免出现内存不够用而报错. 2.安装git ...

  10. (六)构建Docker私有仓库、Gitlab仓库和持续集成环境

    环境说明 IP 功能 eth0:192.168.124.139 eth1:172.16.100.10 Docker私有仓库.Gitlab.持续集成 eth0:192.168.124.138 eth1: ...

最新文章

  1. Retrofit 找不到 GsonConverterFactory
  2. jsp中如何运行java_从上帝视角看Java如何运行
  3. Win32 汇编要点总结
  4. 自己动手实现一个简单的JSON解析器
  5. 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能...
  6. yum 升级curl_CentOS 6/7 更新curl
  7. 解决mac osx下pip安装ipython权限的问题
  8. js清理cookie
  9. 副本引发的问题corrupt data exception
  10. 如何进行大数据分析及处理(总结)
  11. NTL密码算法开源库拓展——SM2算法
  12. SQL查询时间段方法
  13. 想做个可以打印的服务,想用printdocument,但是不用winform,有谁知道怎么实现吗?万分感谢!
  14. 数字证书原理[转载]
  15. 分享一些Photoshop的教程电子档(pdf格式),初学者与设计师适用
  16. 使用openssl命令 生成指定有效时间的ssl证书,cer格式
  17. java金额小写转大写金额_Java金额大小写的转换方法
  18. 【牛客网-公司真题-前端入门篇】——58同城2021校招笔试-前端
  19. 一名网络工程师尴尬的现状?
  20. PHP视频解析网站源码+后台

热门文章

  1. Atitit usrQC27模块化的规范模块化法 v4 t77 目录 1. 模块化层级(软件项目 1 1.1. 子项目》命名空间package机制》类》类文件》方法函数级别》语句 1 2. 常见的
  2. Atitit httpclient 概述 rest接口 目录 1. Httpclient 利用http协议的client类库与技术方法 1 2. 功能用途 why 2 2.1. 上传下载文件 2
  3. paip.验证码识别---判断图片是否是彩色图片
  4. paip.提升开发效率----JAVA网站
  5. python生成公共包(SDK)
  6. Rust : 性能测试criterion库
  7. 如何将 KVM 异构虚拟机启动效率提升 6~10 倍?
  8. 疫期免费 “零接触”云迁移~工具替代人力! 人不聚,活儿继续!
  9. 【语音去噪】基于matlab谱减法+最小均方+维纳滤波语音去噪【含Matlab源码 1542期】
  10. 【图像去噪】基于matlab全变分算法图像去噪【含Matlab源码 1324期】