文章Github地址,欢迎
start
:https://github.com/li-keli/DevOps-WiKihtml
Docker是一个开源的引擎,能够轻松的为任何应用建立一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试经过的容器能够批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其余的基础应用平台。
Docker一般用于以下场景:linux
Docker安装:git
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && \ yum makecache && \ yum install docker-ce -y
Docker文档:github
在基础架构设计的场景里面,我主要用来作自动化测试和持续集成、发布
,但生产场景下,通常不是单节点的Docker运行,而是使用集群运行。web
现将Docker和Gitlab进行集成,正常的集成是在Runner注册的时候选择Docker做为运行器,不过这里先选择shell,经过shell的方式来了解一下,单个Docker镜像是如何生成的,而后又是如何生成一个容器的。docker
下面是一个简单的.gitlab-ci.yml
脚本:shell
deploy_api: stage: deploy tags: - Build script: - dotnet publish Test.Api.csproj -c Release -o ../../publish.api/ - docker build -t test/api:v1 . - docker run -d -P 8001:80 test/api:v1 --name test_api_server only: - master
这个脚本将发布好的dotnet core 项目打包生成一个docker镜像,而后后台运行这个docker镜像。数据库
使用命令:centos
docker ps
能够看到控制台的输出中就有了名为test_api_server
的容器正在运行,而且暴露了8001端口。api
这里就是一个简单的关联,其实Docker CLI拥有不少很丰富的功能,这须要参考官方文档来本身实践
另外因为做者自己知识有限,都是摸索着来的,因此不必定全部的作法都对,或者某些实践会有更好的方案,望各位读者不吝指正,有任何疑问,请留 issues