04:容器技术概述|镜像与容器|docker配置管理

容器技术概述|镜像与容器|docker配置管理

  • 什么是容器
    • 优点
    • 缺点
  • docker与容器
    • 跳板机yum源添加docker软件
    • 在node节点验证软件包
    • 开启路由转发
  • 镜像管理&容器管理
    • 如何获取镜像
    • 镜像备份与恢复
    • 运行容器
    • 查看镜像的启动信息
    • 镜像管理命令
    • 容器管理命令
    • 容器内部署应用

什么是容器

就是将软件打包成标准化单元,用于开发、交付和部署。容器技术已经成为应用程序封装和交付的核心技术。
容器技术的核心有以下几个内核技术组成:

  • 资源管理
  • 安全
  • 命令空间

优点

  • 相比于传统的虚拟化技术,容器更加简洁高效
  • 传统虚拟机需要给每个VM安装操作系统
  • 容器使用的共享公共库和程序

缺点

  • 容器的隔离性没有虚拟化强
  • 共用linux内核,安全性有先天缺陷
    04:容器技术概述|镜像与容器|docker配置管理_第1张图片

docker与容器

Docker是完整的一套容器管理系统,提供了一组命令,让用户更加方便直接使用容器技术,而不需要过多关心底层内核技术。
04:容器技术概述|镜像与容器|docker配置管理_第2张图片
04:容器技术概述|镜像与容器|docker配置管理_第3张图片

跳板机yum源添加docker软件

[root@ecs-proxy ~]# cp -a docker /var/ftp/localrepo/
[root@ecs-proxy ~]# cd /var/ftp/localrepo/
[root@ecs-proxy localrepo]# createrepo -update . 

在node节点验证软件包

[root@docker-0001 ~]# yum makecache
[root@docker-0001 ~]# yum list docker-ce*

以下操作在所有node节点操作

开启路由转发

[root@docker-0001 ~]# vim /etc/sysctl.conf
net.vip4.ip_forward=1
[root@docker-0001 ~]# sysctl -p
[root@docker-0001 ~]# yum install -y docker-ce
[root@docker-0001 ~]# systemctl enable --now docker
[root@docker-0001 ~]# ifconfig # 验证 能看见docker0
[root@docker-0001 ~]# docker version # 验证 没错

镜像管理&容器管理

镜像是启动容器的核心
在docker中容器是基于镜像启动的
镜像采用分层设计
使用cow技术
04:容器技术概述|镜像与容器|docker配置管理_第4张图片

如何获取镜像

  • 官方镜像仓库:hub.docker.com
  • 查看本机镜像:docker images
  • 查找镜像(需要能访问互联网):docker search 关键字
  • 下载镜像(需要能访问互联网):docker pull 镜像名称:标签
    04:容器技术概述|镜像与容器|docker配置管理_第5张图片

镜像备份与恢复

  • 备份镜像(导出镜像)
docker save 镜像名称:镜像标签 -o 文件名(tar格式)
  • 恢复镜像(导入镜像)
docker load -i 备份文件名称

运行容器

# docker run 命令
docker run -参数 镜像名称:镜像标签 启动命令
# 查看run的参数
docker help run 
man docker-run
# run = 创建 + 启动 + 进入

run参数
-i 交互式
-t 终端
-d 后台运行
–name 容器名字

服务型的容器 后台运行

查看镜像的启动信息

docker inspect nginx:latest

04:容器技术概述|镜像与容器|docker配置管理_第6张图片

docker ps # 查看容器

镜像管理命令

04:容器技术概述|镜像与容器|docker配置管理_第7张图片

容器管理命令

04:容器技术概述|镜像与容器|docker配置管理_第8张图片
04:容器技术概述|镜像与容器|docker配置管理_第9张图片
04:容器技术概述|镜像与容器|docker配置管理_第10张图片

容器内部署应用

[root@docker-0002 ~]# docker rm -f $(docker ps -aq)
[root@docker-0002 ~]# docker run -it --rm mycentos:latest
#-----------------------------------------------------------
[root@a7f9d0c3e3e2 /]# yum install -y httpd php
[root@a7f9d0c3e3e2 /]# echo "Hello World ." >/var/www/html/index.html
[root@a7f9d0c3e3e2 /]# cat /etc/sysconfig/httpd
[root@a7f9d0c3e3e2 /]# export LANG=C
[root@a7f9d0c3e3e2 /]# cat /usr/lib/systemd/system/httpd.service
[root@a7f9d0c3e3e2 /]# /usr/sbin/httpd -DFOREGROUND
# 启动服务以后 ctrl-p + ctrl-q 退出
#-----------------------------------------------------------
[root@docker-0002 ~]# curl http://172.17.0.2/
Hello world

容器的启动进程不能被关闭 容器的启动进程必须在前台运行

你可能感兴趣的:(云计算,docker,容器,运维)