Docker 简介
Docker 是什么?
- docker 是一个开源的软件部署解决方案;
- docker 也是轻量级的应用容器框架;
- docker 可以打包、发布、运行任何的应用。
- Docker 是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括 VMs(虚拟机)、 bare metal、OpenStack 集群和其他的基础应用平台。
Docker 通常用于如下场景:
- web应用的自动化打包和发布;
- 自动化测试和持续集成、发布;
- 在服务型环境中部署和调整数据库或其他的后台应用;
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的PaaS环境。
—— 摘自 Docker 中文社区 >> http://www.docker.org.cn/
- Docker 由 go 语言编写,基于 Linux Kernel,从 1.13x 开始版本分为两个分支:社区版(CE)、企业版(EE)
Docker 的优势:
- 启动非常快,秒级实现;
- 资源利用率高,一台高配的服务器可以轻松的运行上千个 docker 容器;
- 更快的较符合部署,一次创建和配置后,可以在任意地方运行;
- 内核级别的虚拟化,使用 Docker Engine 而不需要额外的 Hypervisor 支持,不需要安装 GuestOS,占用更小的磁盘空间,有更高的性能和效率;
- 易迁移,平台依赖性不强。
研究 Docker 的动力:
- 越来越多的知名软件基于 Docker 发行;
- 思科的 ISE 新特性和 IOSXE GuestShell 等均采用容器的方式部署;
Docker 核心概念
- 镜像,一个只读模板,类似于安装系统的ISO文件,通过镜像来完成各种应用的部署;
- 容器,类似于传统的虚拟机,可以被启动、开始、停止、删除等操作,每个容器都是相互隔离的;
- 仓库,存放镜像的场所,分为公有仓库和私有仓库。最大的公有仓库是官方的 Docker Hub(https://hub.docker.com),国内的著名公有仓库(找到再说)
Docker 安装部署
系统环境:使用 CentOS-7-x86_64-Minimal 最小化安装;
测试版本:Docker version 19.03.1, build 74b1e89
Docker 安装
''' 添加官方 YUM 源 '''
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
''' 也可以阿里云 YUM 源 '''
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
curl http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo <<< 效果同上
''' 开始安装 '''
[root@C1 ~]# yum clean all
[root@C1 ~]# yum makecache
[root@C1 ~]# yum -y install docker-ce
[root@C1 ~]#
[root@C1 ~]# docker -v <<< 查看版本
Docker version 19.03.1, build 74b1e89
[root@C1 ~]# docker version <<< 详细版本信息
[root@C1 ~]#
[root@C1 ~]# systemctl start docker
[root@C1 ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@C1 ~]#
- 镜像管理
[root@C1 ~]# docker search centos
[root@C1 ~]# docker pull centos
[root@C1 ~]# docker images
''' 配置镜像加速器 '''
[root@C1 ~]# vim /etc/docker/daemon.json <<< 最好申请个阿里云镜像加速,需要开发者账号
{
"registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirror.c.163.com"]
}
systemctl daemon-reload
systemctl restart docker
''' 给镜像打 tag '''
[root@C1 ~]# docker tag centos new_centos
[root@C1 ~]# docker tag centos new_centos:201908 <<< tag 类似于链接快照
[root@C1 ~]#
[root@C1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 67fa590cfc1c 4 days ago 202MB
new_centos 201908 67fa590cfc1c 4 days ago 202MB
new_centos latest 67fa590cfc1c 4 days ago 202MB
[root@C1 ~]#
''' 删除镜像 '''
[root@C1 ~]# docker rmi new_centos
Untagged: new_centos:latest
[root@C1 ~]# docker rmi new_centos:201908 <<< 删除 tag
Untagged: new_centos:201908
[root@C1 ~]# docker rmi centos <<< 删除镜像
[root@C1 ~]# docker rmi 67fa590cfc1c <<< 删除 ID 表示删除镜像和所有标签
- 运行容器
''' 常用选项:-i 标准输入打开,-t 分配一个伪终端,-d 后台运行,--name 指定名称(不加会随机产生一个) '''
[root@C1 ~]# docker run -itd centos
84c7b5e442eab2799b171d759bce0485e8cc1da6435e11c81ec26f3230334a10
[root@C1 ~]#
[root@C1 ~]# docker ps <<< 查看运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1fe30850f22d centos "/bin/bash" 2 minutes ago Up 2 minutes epic_elbakyan
[root@C1 ~]# docker ps -a <<< 查看所有,包括停止的
[root@C1 ~]#
[root@C1 ~]# docker exec -it 84c7b5e442ea bash <<< 进入容器,操作时可以使用 ID 或者 NAME
[root@84c7b5e442ea /]#
[root@84c7b5e442ea /]# yum makecache
[root@84c7b5e442ea /]# yum install -y net-tools
''' 其他常规操作 '''
[root@C1 ~]# docker stop epic_elbakyan <<< 停止容器
epic_elbakyan
[root@C1 ~]# docker start epic_elbakyan <<< 启动容器
epic_elbakyan
[root@C1 ~]# docker exec -it epic_elbakyan bash <<< 进入容器
[root@84c7b5e442ea /]#
[root@C1 ~]# docker rm epic_elbakyan <<< 删除容器,删除非停止状态的容器加 -f 选项
如下图,Docker 默认给虚机分发了地址、网关,做了 NAT;
虚机地址 172.17.0.2/16,宿主机上 docker0 网卡地址为 172.17.0.1/16(网关);
而且每多运行一个容器,宿主机上就多一个桥接网卡(如下图中 veth7c3f27c@if4)。
- 创建新的镜像
''' 常用选项:-m 添加备注信息,-a 添加作者信息 '''
[root@C1 ~]# docker commit -m 'Just install net-tools' -a 'alin' epic_elbakyan new_centos <<< 创建新镜像
sha256:af4960e07f7f7008b0e66030ee8ef195a1d855db34bc5bc49f09546d1dde1e7b
[root@C1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
new_centos latest af4960e07f7f 8 seconds ago 472MB
centos latest 67fa590cfc1c 5 days ago 202MB
[root@C1 ~]#
[root@C1 ~]# docker run --name new_centos -itd new_centos
[root@C1 ~]# docker stop new_centos
[root@C1 ~]# docker export -o new_centos.tar new_centos <<< 导出容器到 linux 目录
[root@C1 ~]# docker import new_centos.tar centos_install_net-tools <<< 从 linux 目录导入镜像
[root@C1 ~]# docker run --name centos_with_tools -itd centos_install_net-tools bash
Docker 高级操作
2019年06月18日,调整了文档结构
本文由 SHIYL 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Feb 17, 2020 at 03:01 pm
遇到问题:WARNING: IPv4 forwarding is disabled. Networking will not work.
解决方法:在宿主机上 echo "net.ipv4.ip_forward=1" >> /usr/lib/sysctl.d/00-system.conf
之后重启网络服务 systemctl restart network
Хакерский Форум "Творческая Лаборатория DedicateT"
你好!.
我可以在哪里免费下载XEvil在您的网站?
从你的支持得到的信息。 XEvil确实是解决验证码的最佳方案,但我需要最新版本。
多謝。.
All YouTube without ads for you ...
Meet my family. There are five of us – my parents, my elder brother, my baby sister and me. First, meet my mum and dad, Jane and Michael. My mum enjoys reading and my dad enjoys playing chess with my brother Ken what if. My mum is slim and rather tall. She has long red hair and big brown eyes. She has a very pleasant smile and a soft voice.
The best sites http://shiyl.com
Fantastic posts. Thank you! https://maxbestsite.com/
вполне себе годнота
_
Хоккей трактор авангард прогнозы
it расшифровка
ничего особенного