欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-03 10:52:24
...

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

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

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

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

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

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

 

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

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

 

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

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

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

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

 

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

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

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

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

 

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

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

在该文件中加入的内容是

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

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

            启动命令    systemctl start docker

            停止命令    systemctl stop docker

            重启命令    systemctl restart docker 

            查看状态    systemctl status docker

  启动之后查看状态

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

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

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

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

 

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

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

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

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

            REPOSITORY:镜像名称

            TAG:镜像标签

            IMAGE ID:镜像ID

            CREATED:镜像的创建日期

            SIZE:镜像大小

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

说明我们可以正常的访问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入门与实践

 

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

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

我们刚刚安装nginx的时候是直接进入到容器中修改配置文件,并且把要发布的项目也是拷贝到容器中去发布的,这样做的过程有点麻烦,因此我们在部署tomcat 的时候就换个玩法。docker支持将 宿主机的目录与容器内的目录进行映射,接下来我们来试试,

我们首先在宿主机的/usl/local/tomcat/webapps目录下存放两个待发布的项目

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

 

接下来我们使用以下命令创建tomcat容器并且启动该容器

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

 上述命令的含义是 我们创建容器dtomcat (docker run)  ,并且后台启动该容器(-di),将容器的8080端口映射到宿主机的9000端口(-p 9000:8080)  将宿主机的/usl/local/tomcat/webapps映射到容器的/usl/local/tomcat/webapps目录。

好了,这个时候我们查看一下宿主机的/usl/local/tomcat/webapps路径,发现war包已经被解压,说明已经正常的发布了项目了。

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

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

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

 

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