开启DevOps之旅--Docker入门与实践

       前几年一直流传这一句话,虚拟机已死,容器才是未来!   这句话听起来似乎不可思议,很显然有的事容器并不能取代虚拟机,但是从这句话可以看得出来,某些领域容器技术已经逐渐的成为主流了,尤其是微服务架构已经成为一种潮流的今天,我们作为技术人员也应该努力的追上技术的发展。关于虚拟机和容器的相关概念大家可以自己去查询相关的资料(自己太菜了,怕把你们带偏)。

         看到标题大家可能会对DevOps这个名词很好奇,这里给出百度百科的解释。

开启DevOps之旅--Docker入门与实践_第1张图片

       看起来很不错吧,不过这里先不对DevOps做过多的介绍,后续会逐步的给大家揭开DevOps神秘的面纱,好了,先回到今天的主题上,我们来学一下Docker的基本使用。首先准备一台虚拟机,(Docker官方建议在Ubuntu环境下使用),但是我们做开发一般都是习惯使用CentOS,所以本期教程使用CentOS来给大家做演示。建议CentOS7以及 以上的版本(如果不会安装的小伙伴可以去看看https://blog.csdn.net/qq_38701478/article/details/103587607这篇文章)

     首先我们来安装一下Docker,安装之前我们先使用  yum update 命令更新一个yum包,更新过程中遇到了确认都选择y,更新完成之后如下图所示:

开启DevOps之旅--Docker入门与实践_第2张图片

 

接着我们使用 yum install -y yum-utils device-mapper-persistent-data lvm2 命令来安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的。

开启DevOps之旅--Docker入门与实践_第3张图片

 

 接着我们设置阿里云的镜像仓库,sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

最后我们安装Docker sudo yum install docker-ce   

开启DevOps之旅--Docker入门与实践_第4张图片

 

开启DevOps之旅--Docker入门与实践_第5张图片

安装完之后我们输入docker -v  查看一下版本号即可

好了,我们安装完成之后需要在etc目录下新建一个docker目录,在该目录下创建一个daemon.json 的文件。

 

docker安装后默认没有daemon.json这个配置文件,需要进行手动创建。配置文件的默认路径:/etc/docker/daemon.json 

开启DevOps之旅--Docker入门与实践_第6张图片

在该文件中加入的内容是

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

接着我们来启动Docker ,关于Docker启停以及状态查看的命令如下:

            启动命令    systemctl start docker

            停止命令    systemctl stop docker

            重启命令    systemctl restart docker 

            查看状态    systemctl status docker

  启动之后查看状态

开启DevOps之旅--Docker入门与实践_第7张图片

看到那个很绿的running就表示docker启动成功了。

启动成功之后我们可以使用--help来查看帮助文档,

开启DevOps之旅--Docker入门与实践_第8张图片

 

好了,上述内容就是Docker的安装和启动的一些操作了,下面我们来学习一下常用的命令

首先来说一下查看镜像的命令,docker images

由于我们是刚刚安装的Docker,所以没有具体的镜像信息显示出来,这里我们需要知道以上几个选项的意思,如下:

            REPOSITORY:镜像名称

            TAG:镜像标签

            IMAGE ID:镜像ID

            CREATED:镜像的创建日期

            SIZE:镜像大小

 

 

接下来我们使用Docker来安装Nginx,首先我们使用 docker pull 命令来下载nginx的镜像

开启DevOps之旅--Docker入门与实践_第9张图片

下载完成之后我们使用 docker run -di --name=dnginx -p 80:80 nginx 来启动nginx服务

接着我们打开浏览器就可以看到Nginx的首页了。 

 开启DevOps之旅--Docker入门与实践_第10张图片

这里我们可以部署一个静态的网页看看效果, 首先使用 docker exec -it 命令进入容器中

我们的nginx默认是安装在了etc目录下了,我们先进入该目录,如下图所示:

按照以往的惯例,我们先查看一下nginx的配置文件,

开启DevOps之旅--Docker入门与实践_第11张图片

 从最后一行我们可以看到包含conf.d目录下的所有的配置文件,说明我们可以在该目录下单独的编写单个的配置文件,我们来到

conf.d目录,发现有个default.conf,即默认的配置文件,这里我们先来看一下

开启DevOps之旅--Docker入门与实践_第12张图片

我们可以看到root指向的位置是  /usr/share/nginx/html  。我们发现容器内部似乎用不了vi 或者vim 。好吧,原因就是默认是没有安装文本编辑器的,这里我们先来使用命令apt-get  update更新一下apt包管理器,接着使用 apt-get install vim命令安装一下vim文本编辑器。安装完成之后我们就可以使用vim编辑器了

首先我们修改上述的配置文件,如下图所示:

开启DevOps之旅--Docker入门与实践_第13张图片

接着我们保存,退出容器。

我们使用以下命令将yao文件夹拷贝到 容器中的/usr/share/nginx目录下。

开启DevOps之旅--Docker入门与实践_第14张图片

将文件拷贝的命令格式是: docker cp 源文件 容器名称:容器中的路径。 

拷贝进去之后我们重启dnginx这个容器,然后在访问 网址,效果如下图所示:

开启DevOps之旅--Docker入门与实践_第15张图片

说明我们可以正常的访问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镜像

开启DevOps之旅--Docker入门与实践_第16张图片

 

接着我们使用命令查看一下已经下载的镜像列表

我们刚刚安装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包已经被解压,说明已经正常的发布了项目了。

开启DevOps之旅--Docker入门与实践_第17张图片

接下来我们打开浏览器,访问宿主机的ip即可

开启DevOps之旅--Docker入门与实践_第18张图片

 

 好了,大家有没有觉得Docker的功能很轻大呢,今天主要给大家介绍一下Docker的安装和基本的使用,后续会给大家带来更多的容器技术,带着大家一起探索DevOps的神秘之路

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(环境搭建,Docker)