Docker 之七实战 Dockerfile 的简单编写
实战内容介绍
实战编写 Dockerfile,指定终端登录后的默认路径,同时预安装 vim、ifconfig 工具,最后通过 Dockerfile 构建新的 Centos 镜像并运行起来。
编写 Dockerfile 文件
1 | FROM centos |

实战内容介绍
实战编写 Dockerfile,指定终端登录后的默认路径,同时预安装 vim、ifconfig 工具,最后通过 Dockerfile 构建新的 Centos 镜像并运行起来。
编写 Dockerfile 文件
1 | FROM centos |
Dockerfile 介绍
Dockerfile 是用来构建 Docker 镜像的文件,实质是一系列命令和参数构成的脚本文件。当 Dockerfile 文件编写完之后,可以通过 “docker build” 与”docker run” 命令构建并运行新的 Docker 镜像。其中 Dockerfile 定义了进程需要的一切东西,涉及的内容包括执行代码或者文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版本、服务进程和内核进程(当应用进程需要和系统服务、内核进程打交道的时候,需要考虑如何设计 namespace 的权限控制)等等。
Dockerfile、Docker 镜像、Docker 容器三者的关系
Dockerfile 面向开发,Docker 镜像是交付标准,Docker 容器则涉及部署与运维,三者缺一不可,合力充当 Docker 体系的基石。从应用软件的角度来看,Dockerfile、Docker 镜像与 Docker 容器分别代表软件的三个不同阶段,其中 Dockerfile 是软件的原材料,Docker 镜像是软件的交付品,Docker 容器则可以认为是软件的运行状态,示意图如下:
Gitlab 常规配置
1 | # 编辑Gitlab的配置文件 |
Gitlab 相关站点
Gitlab 介绍
GitLab 是基于 Ruby on Rails 的一个开源版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。GitLab 分为社区版(CE) 和企业版(EE)。它拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序 (Wall) 进行交流。依赖组件:Ruby、Git、Nginx、Redis、Sidekiq、GitLab Runner、Unicorn Workers、PostgreSQL/MySQL/MariaDB 等,其中 MySQL/MariaDB 并不完全支持 Gitlab 的所有功能,官方强烈推荐安装 PostgreSQL。
安装环境说明
1 | $ uname -a |
Gitolite Github Repo
Gitolite 介绍
Gitolite 是一款 Perl 语言开发的 Git 服务管理工具,采用的是 SSH 协议并使用 SSH 公钥认证,能够通过配置文件对写操作进行基于分支和路径的精细授权。
安装环境说明
1 | $ uname -a |
Git 工作流指在项目开发过程中使用 Git 的方式,包括集中式工作流、功能分支工作流、GitFlow 工作流、Forking 工作流、Pull Requests。
像 Subversion 一样,集中式工作流以中央仓库作为项目所有修改的单点实体。所有修改都提交到 Master 这个分支上,这种方式与 SVN 的主要区别就是开发人员有本地库,但 Git 很多特性并没有使用到。


1 | # 登录Github的Web页面创建远程库,并记录如下的远程库地址 |
前言
容器在运行期间产生的数据不会写在镜像里面,重新用此镜像创建并启动新的容器就会初始化镜像,加一个全新的容器可写层来保存数据。生产环境中使用 Docker 的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,Docker 提供数据卷和数据卷容器来解决;另外还可以通过 commit 提交一个新的镜像来保存产生的数据,也可以通过 “docker cp” 命令在宿主机与容器之间互相拷贝数据文件。
容器中管理数据主要的两种方式
数据卷(Data Volumes):容器内数据直接映射到本地主机环境。
数据卷容器(Data Volume Containers):使用特定容器维护数据卷。
Docker 镜像
镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,包含运行某个软件所需的所有内容,其中包括代码、运行时、库、环境变量、配置文件。
Docker 的 Base 镜像
Base 镜像从 scratch 构建,不依赖其他镜像,可作为其他应用镜像的父镜像;其他应用镜像可以在此基础进行扩展,Base 镜像通常都是各种 Linux 发行版的 Docker 镜像,比如 Ubuntu、Debian、CentOS 等。