2020-08-10

Docker虚拟化技术概念和容器部署(一)

  26  收藏

分类专栏: Linux 文章标签: dockerlinux

版权

Docker虚拟化是虚拟化技术解决方案中的一种,轻量级、高性能的虚拟化技术,是目前互联网使用最广泛的虚拟化技术;

Docker虚拟化技术概念和原理

  1. Docker虚拟化技术的产物Docker容器(虚拟机|服务程序),容器技术类似集装箱机制,容器中存放了开发编写的各种软件、程序、依赖包、库文件等,容器和容器之间相互隔离的,互不影响,可以基于Docker容器技术实现虚拟化;
  2. 传统虚拟化和Docker虚拟化分层结构图如下:
  3. 传统虚拟化和Docker虚拟化如图对比特点如下:

    传统虚拟化:Server-Host OS-VMM(虚拟化软件)-Guest OS-Nginx服务;
    Docker虚拟化:Server-Host OS-VMM(虚拟化软件)-Nginx服务(Nginx容器);

  4. Docker虚拟化采用集装箱机制,Docker虚拟化技术跟货轮信息举例类比:
    Docker 容器(软件、库文件、服务可以各个类型的服务)= 集装箱(货物、物品);
    Docker Engine = 大货轮(船);
    HOST OS(硬件设备)= 大海;

docker常用命令

 
  1. #查看Docker镜像;

  2. docker images

  3. #删除Docker镜像;(强制删除-f参数)

  4. docker rmi 6759d91a032b

  5. #查看运行中的容器;

  6. docker ps

  7. #查看运行、停止、关闭的所有容器;

  8. docker ps -a

  9. #进入Docker容器系统bash终端;(exit退出即可)

  10. docker exec -it 4f3a529813ce /bin/bash

  11. #停止Docker容器;

  12. docker stop 4f3a529813ce

  13. #启动Docker容器;

  14. docker start 4f3a529813ce

  15. #删除Docker容器;

  16. Docker rm 4f3a529813ce(-f强制删除运行中的容器);

  17. #删除所有的Docker容器;

  18. for i in `docker ps|awk 'NR>=2 {print $1}'`;do docker rm -f $i ;done

  19. docker ps -aq|xargs docker rm -f

  20. docker rm -f `docker ps -aq`

  21. docker rm -f $(docker ps -aq)

  22. .删除images,通过image的id来指定删除谁

    docker rmi <image id>

    想要删除untagged images,也就是那些id为<None>的image的话可以用

    docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

    要删除全部image的话

    docker rmi $(docker images -q)

 

docker虚拟化平台

Docker官网要求部署Docker引擎(虚拟化软件)的底层Host OS的Linux系统内核版本3.8+,最早期Windows操作系统不支持Docker虚拟化部署,新版的Windows系统可以支持Docker;

 

查看内核:uname -a

1.基于CentOS7.x(7.0+)部署Docker引擎服务,指令如下:

 
  1. #YUM安装Docker引擎服务;

  2. yum install docker* -y

  3. #查看Docker软件是否安装;

  4. rpm -qa|grep docker

  5. #启动Docker引擎服务;

  6. systemctl restart docker

  7. #查看Docker引擎服务进程;

  8. ps -ef|grep docker

引擎服务配置完毕,并且启动完成,如图所示:

2.Docker虚拟化属于C/S(Client/Server)模式,Server-Engine服务,Client-Docker命令工具,查看docker客户端和服务端版本号:docker version;

 

3.Docker虚拟化技术实施之前,了解三个概念:Docker镜像、Docker容器、Docker仓库;

Docker镜像:Docker镜像类似Linux ISO镜像文件,底层模板,镜像中存储的各种软件、程序、LIB库、依赖环境等,Docker镜像结构分层(层次)的结构,每一层存储不同的软件和功能,镜像是只读的,不能被修改;

Docker容器:Docker容器基于Docker镜像运行之后实体,Docker容器的底层是镜像,Docker容器所需文件、软件可以从镜像层中读取,没有镜像,就没有Docker容器,镜像是静止的,容器是活动的(进程和程序的关系);

Docker仓库:Docker仓库是用于存储Docker镜像文件的地方,仓库分为公共和私有仓库,企业生产环境推荐自建私有仓库(安全、稳定、速度快);

 

4.如果通过Docker引擎运行Docker容器,首先从公共仓库下载Docker镜像,基于Docker镜像再启动容器(默认Docker引擎从Docker国外官网下载镜像文件);

1)从docker官网仓库搜索tomcat|nginx|redis镜像;

 
  1. [root@VM_0_2_centos ~]# docker pull docker.io/tomcat

  2. [root@VM_0_2_centos ~]# docker pull docker.io/nginx

  3. [root@VM_0_2_centos ~]# docker pull docker.io/redis

2)查看本地服务器的镜像列表;(从远程仓库下载的)

[root@VM_0_2_centos ~]# docker images

3)基于Docker镜像启动Tomcat容器并映射(-i interactive交互、-t tty终端、-d daemon后台运行):

将宿主机系统的8080端口映射到容器的8080端口;(第一个端口宿主机监听的,第二个端口是容器内部服务端口)

[root@VM_0_2_centos ~]# docker run -p 8080:8080 -itd docker.io/tomcat:latest

4)查看Docker tomcat容器的运行状态;

[root@VM_0_2_centos ~]# docker ps

 

5)查看Docker tomcat容器的IP地址;

[root@VM_0_2_centos ~]# docker inspect 5bcda8027f78 |grep -i ipaddr

6)如何访问创建Tomcat容器(Tomcat软件服务,监听8080端口);

内部检查该容器是否可以访问,如果不能访问,浏览器中也会无法访问,属于前置检查步骤:

[root@VM_0_2_centos ~]# wget 172.17.0.3:8080

访问提示404:

解决办法:

1.进入当前容器的bash命令行:

[root@VM_0_2_centos ~]# docker exec -it 5bcda8027f78 bash

2.打印当前目录:会发现当前目录多了个webapp.dist目录:

root@5bcda8027f78:/usr/local/tomcat# ls

3.检查webapps目录,发现目录中是空的,因为该目录为空所以会显示404,所以此时我们可以将webapps重命名区分开,将webapps.dist重命名为webapps即可。

 
  1. root@5bcda8027f78:/usr/local/tomcat# mv webapps webapps2

  2. root@5bcda8027f78:/usr/local/tomcat# mv webapps.dist/ webapps

  3. root@5bcda8027f78:/usr/local/tomcat# exit

4.此时再次内部检查是否可以ping通 :

[root@VM_0_2_centos ~]# wget 172.17.0.3:8080

 打印数据为以下内容,表示可以访问了,请求非404,并返回状态为200。可使用浏览器访问了。 

7) 访问映射后的tomcat:

若出现页面加载显示404:确认上述操作无误,多刷新访问该页面即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值