容器技术概述|镜像与容器|docker配置管理
- 什么是容器
- 优点
- 缺点
- docker与容器
- 跳板机yum源添加docker软件
- 在node节点验证软件包
- 开启路由转发
- 镜像管理&容器管理
- 如何获取镜像
- 镜像备份与恢复
- 运行容器
- 查看镜像的启动信息
- 镜像管理命令
- 容器管理命令
- 容器内部署应用
什么是容器
就是将软件打包成标准化单元,用于开发、交付和部署。容器技术已经成为应用程序封装和交付的核心技术。
容器技术的核心有以下几个内核技术组成:
- 资源管理
- 安全
- 命令空间
优点
- 相比于传统的虚拟化技术,容器更加简洁高效
- 传统虚拟机需要给每个VM安装操作系统
- 容器使用的共享公共库和程序
缺点
- 容器的隔离性没有虚拟化强
- 共用linux内核,安全性有先天缺陷
docker与容器
Docker是完整的一套容器管理系统,提供了一组命令,让用户更加方便直接使用容器技术,而不需要过多关心底层内核技术。
跳板机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技术
如何获取镜像
- 官方镜像仓库:hub.docker.com
- 查看本机镜像:docker images
- 查找镜像(需要能访问互联网):docker search 关键字
- 下载镜像(需要能访问互联网):docker pull 镜像名称:标签
镜像备份与恢复
- 备份镜像(导出镜像)
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
docker ps # 查看容器
镜像管理命令
容器管理命令
容器内部署应用
[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
容器的启动进程不能被关闭 容器的启动进程必须在前台运行