开启DevOps之旅--Docker入门与实践
前几年一直流传这一句话,虚拟机已死,容器才是未来! 这句话听起来似乎不可思议,很显然有的事容器并不能取代虚拟机,但是从这句话可以看得出来,某些领域容器技术已经逐渐的成为主流了,尤其是微服务架构已经成为一种潮流的今天,我们作为技术人员也应该努力的追上技术的发展。关于虚拟机和容器的相关概念大家可以自己去查询相关的资料(自己太菜了,怕把你们带偏)。
看到标题大家可能会对DevOps这个名词很好奇,这里给出百度百科的解释。
看起来很不错吧,不过这里先不对DevOps做过多的介绍,后续会逐步的给大家揭开DevOps神秘的面纱,好了,先回到今天的主题上,我们来学一下Docker的基本使用。首先准备一台虚拟机,(Docker官方建议在Ubuntu环境下使用),但是我们做开发一般都是习惯使用CentOS,所以本期教程使用CentOS来给大家做演示。建议CentOS7以及 以上的版本(如果不会安装的小伙伴可以去看看https://blog.csdn.net/qq_38701478/article/details/103587607这篇文章)
首先我们来安装一下Docker,安装之前我们先使用 yum update 命令更新一个yum包,更新过程中遇到了确认都选择y,更新完成之后如下图所示:
接着我们使用 yum install -y yum-utils device-mapper-persistent-data lvm2 命令来安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的。
接着我们设置阿里云的镜像仓库,sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
最后我们安装Docker sudo yum install docker-ce
安装完之后我们输入docker -v 查看一下版本号即可
好了,我们安装完成之后需要在etc目录下新建一个docker目录,在该目录下创建一个daemon.json 的文件。
docker安装后默认没有daemon.json这个配置文件,需要进行手动创建。配置文件的默认路径:/etc/docker/daemon.json
在该文件中加入的内容是
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
接着我们来启动Docker ,关于Docker启停以及状态查看的命令如下:
启动命令 systemctl start docker
停止命令 systemctl stop docker
重启命令 systemctl restart docker
查看状态 systemctl status docker
启动之后查看状态
看到那个很绿的running就表示docker启动成功了。
启动成功之后我们可以使用--help来查看帮助文档,
好了,上述内容就是Docker的安装和启动的一些操作了,下面我们来学习一下常用的命令
首先来说一下查看镜像的命令,docker images
由于我们是刚刚安装的Docker,所以没有具体的镜像信息显示出来,这里我们需要知道以上几个选项的意思,如下:
REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期
SIZE:镜像大小
接下来我们使用Docker来安装Nginx,首先我们使用 docker pull 命令来下载nginx的镜像
下载完成之后我们使用 docker run -di --name=dnginx -p 80:80 nginx 来启动nginx服务
接着我们打开浏览器就可以看到Nginx的首页了。
这里我们可以部署一个静态的网页看看效果, 首先使用 docker exec -it 命令进入容器中
我们的nginx默认是安装在了etc目录下了,我们先进入该目录,如下图所示:
按照以往的惯例,我们先查看一下nginx的配置文件,
从最后一行我们可以看到包含conf.d目录下的所有的配置文件,说明我们可以在该目录下单独的编写单个的配置文件,我们来到
conf.d目录,发现有个default.conf,即默认的配置文件,这里我们先来看一下
我们可以看到root指向的位置是 /usr/share/nginx/html 。我们发现容器内部似乎用不了vi 或者vim 。好吧,原因就是默认是没有安装文本编辑器的,这里我们先来使用命令apt-get update更新一下apt包管理器,接着使用 apt-get install vim命令安装一下vim文本编辑器。安装完成之后我们就可以使用vim编辑器了
首先我们修改上述的配置文件,如下图所示:
接着我们保存,退出容器。
我们使用以下命令将yao文件夹拷贝到 容器中的/usr/share/nginx目录下。
将文件拷贝的命令格式是: docker cp 源文件 容器名称:容器中的路径。
拷贝进去之后我们重启dnginx这个容器,然后在访问 网址,效果如下图所示:
说明我们可以正常的访问Nginx服务器了。
好了,上面的操作分别为大家介绍了一下使用docker部署Nginx服务器,这里先总结一下上述涉及到的命令;
将文件拷贝到容器中:docker cp 需要拷贝的文件或目录 容器名称:容器目录
拉取镜像文件 docker pull 镜像名
创建容器并绑定端口 docker run -di --name=dnginx -p 80:80 nginx(其中dnginx是容器的
名字,可以自定义 -di 的含义是 -d -i 的组合,-i表示运行容器-d表示后台运行)
进入容器内部 docker exec -it 容器名 /bin/bash
退出容器 exit
在容器中安装vim编辑器 apt-get update 完成之后 apt-get install vim
好了,相信大家对于docker已经有了一个初步的认识了, 接下来我们再来试试安装一个tomcat。
首先我们拉取tomcat镜像
接着我们使用命令查看一下已经下载的镜像列表
我们刚刚安装nginx的时候是直接进入到容器中修改配置文件,并且把要发布的项目也是拷贝到容器中去发布的,这样做的过程有点麻烦,因此我们在部署tomcat 的时候就换个玩法。docker支持将 宿主机的目录与容器内的目录进行映射,接下来我们来试试,
我们首先在宿主机的/usl/local/tomcat/webapps目录下存放两个待发布的项目
接下来我们使用以下命令创建tomcat容器并且启动该容器
上述命令的含义是 我们创建容器dtomcat (docker run) ,并且后台启动该容器(-di),将容器的8080端口映射到宿主机的9000端口(-p 9000:8080) 将宿主机的/usl/local/tomcat/webapps映射到容器的/usl/local/tomcat/webapps目录。
好了,这个时候我们查看一下宿主机的/usl/local/tomcat/webapps路径,发现war包已经被解压,说明已经正常的发布了项目了。
接下来我们打开浏览器,访问宿主机的ip即可
好了,大家有没有觉得Docker的功能很轻大呢,今天主要给大家介绍一下Docker的安装和基本的使用,后续会给大家带来更多的容器技术,带着大家一起探索DevOps的神秘之路