Docker学习总结01
Docker学习总结01
主要内容:
1.Docker基本概念
2.CentOS7安装Docker
3.Docker_命令
4.Docker镜像
5.Docker应用Tomcat容器部署web应用实践
一、Docker基本概念
1.是什么?能干什么?
Docker是一种可以把开发ok的环境,整体打包到生产上运行,方便做CI(持续集成),有助于整体发布的容器虚拟化技术,也是一个软件容器平台。解决了环境+配置不同的问题,Docker理念:一次构建,处处运行。
2.优劣势
一个宿主机可运行100~1000个容器,各大厂商都使用基于docker的弹性云,动态调度。
docker的劣势:对centos6集群支持不够好,安全方面需要优化,镜像还不完善
3.使用docker场景图
4.基本概念
镜像(image):是只读模板,是千层饼,里面还封装一层层的镜像
容器(container):是镜像的实例,docker利用容器来运行应用,可以看成一个简易版的linux环境(包含root用户权限、进程空间、用户信息、网络等和运行在其中的应用程序)
仓库(repository):用来管理镜像
关系:一个registry可以有多个repository,一个repository中会有多个不同tag的image,一个image可以实例化启动为多个容器
二、CentOS7安装Docker
1.安装 yum install -y docker
启动 systemctl start docker
2.配置国内镜像加速器
vi /etc/docker/daemon.json
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
systemctl daemon-reload
systemctl restart docker
3.docker是如何工作的?
docker是一个client-server结构系统,docker守护进程运行在宿主机上,然后通过socket连接,从客户端访问;守护进程从客户端接收命令并管理运行在主机上的容器,容器是一个运行时环境,就是集装箱。
4.为什么docker运行比VM快?
|--docker比VM有更少的抽象层,减少了Hypervisor的硬件资源虚拟化,而使用docker Engine使运行在容器上的程序使用实际物理机的硬件资源
|--不需要加载新的内核,内核共享使用的是宿主机的内核
三、Docker_命令
1.帮助命令
docker version / docker info 查看docker基本信息
docker --help 查看docker命令使用指南
2.镜像命令
docker images 查看docker镜像
docker pull tomcat 拉取tomcat镜像
docker rmi 镜像ID 删除镜像
docker rmi -f @(docker images -qa) 查询所有镜像并强制删除
docker search -s 30 tomcat 搜索星星超过30的tomcat镜像
导出镜像
docker save tomcat:latest > /root/tomcat.tar.gz
导入镜像
docker load < /root/tomcat.tar.gz
3.容器命令
以交互方式启动容器:
docker run -p 8888:8080 -it --name mytomcat /bin/bash
以守护进程方式启动容器:
docker run -d -p 8888:8080 --name mytomcat
查看在运行的容器
docker ps
docker ps -l 查看最近创建的容器
docker ps -a 查看运行的所有容器
docker ps -n 3 查看最近三次运行的容器
退出容器
exit 容器停止退出
Ctrl+P+Q 容器不停止退出
查看容器日志
docker run -f -t --tail 100 容器ID 追加输出容器的最后100条日志
查看容器内运行的进程
docker top 容器ID
查看容器内部细节
docker inspect 容器ID
进入正在运行的容器
docker exec -it 容器ID /bin/bash 进入容器操作
docker exec -it 容器ID ls /tmp 不进入容器,但返回的结果是容器内执行命令的结果
docker attach 容器ID 直接进入容器命令行
停止容器
docker stop 容器名
删除容器
docker rm 容器名(注意:先停才能删除)
四、Docker镜像
1.docker底层是unionFS 联合文件系统
|--unionFS是一种分层的,轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可将不同目录挂载到同一虚拟文件系统下
|--镜像是一种轻量级、可执行的独立软件包,用来打包软件可运行环境和基于运行环境尅发的软件,包含某软件运行的所有所需的环境配置
|--镜像可以通过分层来继承基于基础镜像,可以制作各种具体的镜像
|--特性:一次加载多个文件系统,从而外面看,只能看到一个文件系统
|--docker镜像的特点
只读、当容器启动时,一个新的可写层被加载到镜像顶部,这一层通常作为“容器层”,“容器层”之下都叫做“镜像层”。
五、Docker应用-Tomcat容器部署web应用实践
1.复制war包到容器中(路径反过来是拷出)
docker cp /usr/src/jenkins.war mytomcat:/usr/local/tomcat/webapps
访问;宿主机IP+映射容器的端口/jenkins