其实很久之前就接触到了docker
我记得最早接触docker是在 v二瑞 的时候
那时候一个docker应用就可以跑一个这个应用。
第一次了解这个docker,那时的感觉就是那个logo的感觉
一个鲸鱼上背了很多的集装箱
或者是一艘船上装载了很多集装箱
ship many containers
例如官网的图片就是这个样式
至少我觉得理解的很形象
今天算是docker的第一次笔记,就简单的记录一个开头吧
一.docker简介
首先介绍一下docker的理念
Build,Ship and Run Any App,Anywhere
翻译一下大概就是:
任何时间任何地点任何情况都可以构建装载和运行任何应用
好像任何用的有点多,但是这才体现了docker的威猛之处
其实呢专业术语的解释就是这样的
解决了运行环境和配置问题的软件容器, 方便做持续集成并有助于整体发布的容器虚拟化技术。
哈哈哈,这个理解起来是不是也有点难。
那我就说的再通透一点。那就是,
当我们程序员写完代码的时候,在本机调试没问题之后
就把本机的系统环境,软件环境
系统变量和软件代码等等一系列开发用到的和系统用到的
全部打包成为一个container
的技术就是docker。
我们可以想象成,一个码农在一块袈裟上敲代码,上面有他日常吃的牛肉干
和平常喝的怡宝水和MacBook pro和MacBook Pro的充电器
现在docker技术来了,就把这块袈裟的四个角全都捏起来了
当然这个袈裟里,程序员所需要的一切都有而且都是他所需要一切
这样不管这个程序员去哪,都能保证他可以顺利的敲出代码
因为他在一个他熟悉的环境。
所以如果打包成了一个container的话,这个软件不论拿到哪里都可以正常运行,这样一来,我们就再也不用因为软件版本,编译环境等一些非编码问题而导致部署的时候出现一系列的问题。
这个部署时的问题,我是真的遇到过。
就是在我部署django博客的时候
首先在服务器上安装python3
然后卸载centos自带的python2
然后升级pip3
然后pip3 update一下
然后安装我的python项目的依赖
我一般会选择打包出requirements.txt
然后在安装这个依赖的时候就会报错,各种版本的错误,因为python的小版本不对应
然后再去安装mysql,我当时用的是sqlite3 也是相当致命的,因为sqlite3. 的版本需要手动安装 还需要手动卸载之前的版本
虽然整个流程 也不过是我打字的这几行,可是在当年 一个技术小白
这几行字的流程我却是反反复复 重装系统 安装依赖 这么往复了不止十次
菜成功了
所以运维对于一个小白来说是非常头疼的。
但是现在docker来了,就解决了这个问题。
小白开发的时候是什么环境,部署的时候就原数照办,这样不就problem slove了么
好了,docker的简介我希望我是说明白了。
如果没明白,那就是您没有一点的运维或者部署的经验。
only time will tell
其实这张图也算是再次讲了一遍
二.docker的组成
docker的基本组成有三项:
a.镜像 image
b.容器 container
c.仓库 repository
三者的关系大概就是图片上这样
镜像就好比是一个模板,docker通过这个模板来创建container服务
image是底层的,有了base image之后我们就可以run我们自己的app
然后就可以启动这个container了
仓库呢就是存放image的地方,分为共有仓库和私有仓库
这三个部分我觉得不需要过多介绍,我们一边学一遍理解
慢慢的这三者的概念就会在你的心中根深蒂固了
三.docker的安装
这个安装我们完全可以依照官网的步骤
这里拿centos7为例
第一步:
代码语言:javascript复制 sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
移除老版本的docker,当然如果你是root用户登录的就不用输入sudo了
第二步:
代码语言:javascript复制 sudo yum install -y yum-utils
下面是第二小步
sudo yum-config-manager
--add-repo
https://download.docker.com/linux/centos/docker-ce.repo
安装一些yum工具 以及配置docker的yum源
第三步:
代码语言:javascript复制sudo yum install docker-ce docker-ce-cli containerd.io
这一步是正式开始安装docker了
第四步:
代码语言:javascript复制sudo systemctl start docker
启动docker
第五步:
代码语言:javascript复制 sudo docker run hello-world
测试docker
如果能输出信息和下面图片一样的话就代表一切ok
ok今天的介绍先到这里。