docker
docker是一个开源的应用引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器;docker项目的目标是实现轻量级的操作系统虚拟化解决方案
docker具备的优势
1、更快速的交付和部署
容器的启动时间是秒级的,大量地节约开发、测试、部署的时间
2、更高效的虚拟化
docker容器的运行不需要额外的hypervisor支持,它是内核级的虚拟化,因此可以实现更高的性能和效率
3、更轻松的迁移和扩展
docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等
4、更简单的管理
使用docker,只需要小小的修改,就可以替代以往大量的更新工作;所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理
镜像
镜像:一个特殊的文件系统,docker镜像就是一个只读的模板,相当于一个root文件系统
镜像构建时,会一层层构建,前一层是后一层的基础;每一层构建完成就不会再发生改变,后一层上的任何改变只发生在自己这一层
一些操作命令:
搜索镜像
docker search nginx
拉取镜像
docker pull nginx:1.14-alpine
若没有写版本,则默认拉取最新版本镜像
推送镜像
docker push nginx
查看当前主机镜像列表
docker image ls
或者:docker images
导出镜像
docker image save nginx > docker-nginx.tar.gz
导入镜像
docker image load -i docker-nginx.tar.gz
删除镜像
docker image rm nginx
查看镜像的详细信息
docker image inspect centos
容器
容器:镜像运行时的实体,docker利用容器来运行应用
容器存储层的生存周期和容器一样,当容器消失时,容器存储层也随之消失,因此任何保存于容器存储层的信息都会随着容器的删除而消失,因此我们可以使用数据卷或者将文件绑定宿主目录来存储数据
操作命令
运行一个容器
docker run --name web1 -d -p 8888:80 nginx
查询docher端口映射
docker port web1
在容器运行时交互式进入容器
docker run --name web1 -it nginx /bin/sh
查看容器运行状态
docker ps
或者 docker container ls
停止运行的容器
docker stop 关闭运行的容器
docker kill 杀死运行的容器
激活关闭的容器
docker start 容器名
查看容器的详细信息
docker inspect 容器名
仓库
仓库:集中存放镜像文件的地方
当镜像构建完成后,可以很容易的在当前宿主机上运行该镜像,但要在其他主机上运行我们就需要借助仓库开存储、发放镜像
docker的网络模式
bridge、host、container、none
通过 docker network 命令查看网络模式
Bridge网络模式(docker的默认网络模式)
当docker进程启动时,在主机上创建一个名为docker0的虚拟网桥,此主机上启动的docker容器会连接到这个虚拟网桥上,所有默认地址172.17.0.0/16的地址中;
从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关,在主机上创建的一对虚拟网卡一端在新建的容器中,一端在主机中
host网络模式
若启动容器的时候使用host模式,那么这个容器将不会获得一个独立的network namespace,而是和宿主机共用一个network namespace
container网络模式
这个模式指定新创建的容器和已经存在的一个容器共享一个network namespace,而不是和宿主机共享
none网络模式
使用none模式,docker容器拥有自己的network namespace,但不为docker容器进行任何网络配置