最近由于公司准备上微服务,并且集成devops需要用到docker部署。之前的服务部署都是用的jenkins 和bamboo来做的,基本都比较成熟了,现在就把部署模式转换成docker的方式。自己边学边给大家分享,从小白开始一起进步。所以,想写一篇针对实践动手的文章,一是用来记录学习过程,二也是留下最佳实践给自己或者给其他需要的小伙伴。
这里我准备跳过原理,以及为什么使用docker,直接从动手开始。需要了解更多,去官网看看。
https://www.docker.com。
docker安装
linux上面安装docker,我们需要通过地址 https://get.docker.com 这个地址来安装,所以需要实用命令curl。获取安装文件以后进入制定的目录中,运行install.sh 命令就可以了。
这里我是把安装包放到了tmp目录下面了,各位小伙伴按照自己的目录来放置就好了。
curl https://get.docker.com > /tmp/installcat /tmp/install.shchmod +x /tmp/install.sh/tmp/install.sh
对于Mac os 和windows 的用户可以去 https://www.docker.com/products/docker-desktop 上面下载docker toolbox 的工具箱,他是一个很小的boot2docker的虚拟机,安装成功以后就可以打开docker 的quickstart 终端来实用docker了。
我本地就是用的mac 版本,下载以后双击就可以安装了很简单。
开机的时候可以自动启动,并且可以查看版本。
上面的安装我是很早
同样也可以通过命令来配置当前的终端:
docker-machine start defaulteval $(docker-machine env default)
上面的安装我很早就完成了,如果和实际情况不太符合,可以告诉我。总之安装是很简单的,完成安装以后看看docker的版本是多少,确保安装成功了。
控制台输入命令
docker version
运行第一个镜象
既然安装好了,我们来看看运行点什么。这里下载精简版本的linux 系统 Debian linux,并且打印hello world 看看效果
docker run debian echo "hello world"
这里docker 后面的run 就是在告诉docker 我们要运行某个镜象文件了,这个文件就做 Debian,这个时候docker 会在本地去找是否存在这个镜像文件如果没有会到docker的远程仓库去下载这个文件。docker 默认的远程仓库是Docker Hub上面可以搜索很多各式各样的docker image 文件。
由于我这里已经下载了这个镜像,所以之间看到上面的结果。
再来一个命令进入到这个容器承载的linux 中去执行脚本。由于之前已经下载debian,再执行命令的时候就不用再下载了,因为本地已经有这个镜像了。
docker run -i -t debian /bin/bash
进入以后输入一串信息然后通过exit命令退出。
基本命令尝试一下
docker 容器的镜像下载了,并且做了简单操作了,现在来敲几个命令看看是否可以。
这里我们尝试打开两个终端,都输入一下命令
docker run -i -t debian /bin/bash
然后再打开一个终端(总共打开了3个终端),输入以下的命令
docker ps
我们看到了docker 启动了两个容器,是两个进程,并且对两个容器都起了名字。
我们可以通过容器的名字来获取容器的基本信息。这个名字是docker自己起的,我这里的名字叫做 adoring_leakey,你们也可以用你们生成的名字输入以下的命令
docker inspect adoring_leakey
什么内容太多了,这里换个命令只获取ip的信息。
docker inspect adoring_leakey | IPAdress
现在我们进入容器 eloquent_hodgkin,去随便移动一下目录,然后再通过docker 的日志功能看看我们做了什么。这里我们把bin目录移动一下。
mv /bin /hello
切换到其他终端,然后看日志如下
docker logs eloquent_hodgkin
可以清楚的看到容器内文件夹移动日志。
既然bin目录都移动了,我们推出这个容器的shell 脚本然后删除这个容器。
通过exit命令退出eloquent_hodgkin容器,并且运行删除容器的命令。
docker rm eloquent_hodgkin
再通过docker ps 看看容器进程
发现之前的容器已经被删除了,只剩一个容器了。
总结:从0到1 ,我们安装docker,下载了第一个镜像,运行了几个docker的简单命令,整个过程10分钟就可以搞定,大家可以动手试试。