一、简介
1.什么是docker?
docker是管理容器的引擎
docker为应用打包,部署平台,二非单纯的虚拟化技术。
2.简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
DockerClient客户端
Docker Daemon守护进程
Docker Image镜像
DockerContainer容器
二、传统虚拟化与容器技术的对比
Guest OS:6 操作系统
虚拟机 | docker容器 | |
---|---|---|
操作系统 | 宿主机上运行虚拟机OS | 共享宿主机OS |
存储 | 镜像较大(GB) | 镜像小(MB) |
性能 | 操作系统额外的cpu、内存消耗 | 几乎无性能损耗 |
移植性 | 笨重,与虚拟化技术耦合度高 | 轻量,灵活迁移 |
隔离性 | 完全隔离 | 安全隔离 |
部署 | 慢,分钟级 | 快速,秒级 |
运行密度 | 一般几十个 | 单机支持上千容器 |
对于开发人员:Build once,Run anywhere
对于运维人员:Configure once
三、docker工作方式
四、我的第一个容器
阿里云开源镜像站:https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages
软件包列表:
containerd.io-1.2.5-3.1.el7.x86_64.rpm
container-selinux-2.21-1.el7.noarch.rpm
docker-ce-18.09.6-3.el7.x86_64.rpm
docker-ce-cli-18.09.6-3.el7.x86_64.rpm
1.安装软件
yum install *.rpm #将上述四个包安装
2启动docker:
[root@node2 ~]# systemctl start docker
[root@node2 ~]# systemctl enable docker
注意:
开启docker之后,若docker 后补全不了命令,是缺少bash
解决:
yum install bash-* -y ,安装完之后重启才生效。
3导入镜像,下载tar包:game2048.tar
docker load -i game2048.tar
导入成功后:
4 运行容器:
docker run -d --name game1 -p 80:80 game2048
检验:浏览器中输入172.25.7.2