目录
1. 传统虚拟机和容器虚拟机的对比
传统:创建速度慢,有性能损耗,资源消耗大,支持各类操作系统,镜像体积大。
容器:创建速度快,几乎无性能消耗,资源消耗小,支持虚拟化的内核操作系统,无法独立运行,需要依赖基础环境。
2. 什么是Docker
(1)clients:docker,docker machine
(2)hosts:local host,remote host
(3)registries:docker hub,private registry
3. Docker优势
(1)更高效的利用系统资源
(2)更快速的启动时间
(3)最核心:一致的运行环境
(4)持续交付和部署
(5)更轻松的迁移
(6)更轻松和维护和扩展
4. Docker基础术语
(1)Docker:docker就是一个服务,用来管理虚拟化的容器。
(2)仓库:用于存放镜像的地址服务器。
(3)镜像:Image, 是一个可执行的包,其中包括运行应用程序所需要的所有内容包。
(4)容器:containers, 镜像真正被启动时候生成的虚拟服务器。
5. Docker安装
(1)方式1:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
(2)CentOS环境下安装Docker:
1) 确认自己的Linux版本号,建议用CentOS7: cat /etc/redhat-release
2) 安装需要的软件依赖包:yum install -y yum-utils device-mapper-persistent-data lvm2
3) 查看所有仓库中所有docker版本, 并选择特定版本安装:
yum list docker-ce --showduplicates | sort -r
4) 安装对应的版本:yum install docker-ce-18.03.1.ce //安装过程需要做选择,选y
5)启动 Docker, 并把Docker加入到开机自启动:
systemctl start docker
systemctl enable docker
6) 验证Docker是否安装并启动成功:docker version
6. Docker安装其他镜像
(1)Docker镜像加速
1)打开文档:sudo vi /etc/docker/daemon.json
2)输入内容:{ “registry-mirrors”: ["https://registry.docker-cn.com"]}
3)然后使用命令重启docker 即可:sudo service docker restart
(2)查询要安装的镜像
1)打开网页:https://registry.hub.docker.com
2)查询要安装的镜像,比如tomcat, 然后看看tag等信息,一般是安装最新的版本,也可指定版本
(3)容器的安装启动
1)docker search xxx(比如tomcat):搜索都有哪些版本
2)docker pull xxx:下载镜像包
3)docker images xxx: 查看当前都有哪些已经下载的镜像
4)docker run -itd --name=容器名 -p 9090:8080 tomcat
容器名:自己起,比如sheryl_tomcat
端口:前面的9090可随取,不冲突即可。后面的8080不可改,这是镜像里设置好的端口号,该镜像里的端口号是多少这里就要写多少。
此步骤后,会生成一长串的容器ID
注: tag标签,一个说明,可以改标签,可以打多个标签
5)docker ps -a: 查看当前都开启了哪些容器
6)浏览器中,服务器IP:端口(? 前面一个)查看所开启的容器内容
注意,如果容器里没有任何内容,根目录下则是空的。
7)docker stop 容器名:停掉容器
8)docker start 容器名:再次启动容器
9)补充:如何检查某个容器是否顺利开启?
1. 检查默认日志:docker logs -f —since=5m 容器id或容器名称
2. 进入容器里看:docker exec -it 容器名称 /bin/bash
然后 cd logs 然后cat 看具体日志内容
问题:
(1)动手实践的时候,为什么在浏览器中访问不到?
因为tomcat应用是放在webapps中的,此时webapps中没什么内容。
解决办法:此时在下面创建文件内容,比如可以用cp把一些内容放到tomcat/webapps下,此时再在浏览器查看,还是访问不到。
(2)这是因为如果把文件放到webapps根目录下,所以还是无法访问。
解决办法:不要直接放在webapps的根目录下,先在webapps目录下建一个文件夹,存放一些内容,再在浏览器中打开(注意网址路径)。成功。
注:容器都是最简化安装,所以刚开始可能很多命令都没有,需要安装。
7. Docker 常用命令
(1)docker run -itd --name mysql-test(容器名) -p 9090:8080 -e MYSQL_ROOT_PASSWORD=123456 mysql
(2)docker ps -a
(3)docker exec
(4)docker start CONTAINER
(5)docker logs
(6)docker inspect 镜像名/容器名
(7)docker rmi 镜像名称或者image id(建议):删除一些镜像
(8)docker rm 容器名或者容器id
注:进入容器后,可使用常规的Linux命令来进行操作(但容器中很多命令都没安装,使用受限)