一、docker介绍node
Docker是PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并听从Apache2.0协议开源。
Docker是经过内核虚拟化技术(namespace以及cgroups等)来提供容器的资源隔离与安全保障。因为Docker经过操做系统层的虚拟化实现隔离,因此Docker容器在运行时,不须要相似虚拟机( VM)额外的操做系统开销,提升资源利用率。linux
组件:容器,镜像,仓库docker
用途:简单配置、代码流水线管理、开发效率、应用隔离、服务器整合、调试能力、多租户、快速部署centos
docker改变了什么?安全
面向产品:产品交付bash
面向开发:简化配置环境服务器
面向测试:多版本测试架构
面向运维:环境一致性运维
面向架构:自动化扩容测试
二、docker部署
yum install docker systemctl start docker systemctl enable docker
查看docker信息
[root@izwz99hcysthbz36uveqfvz ~]# docker info
搜索docker镜像
[root@izwz99hcysthbz36uveqfvz ~]# docker search centos(镜像名称)
查看镜像(docker images信息包括:镜像仓库、标签、镜像ID、建立时间、大小)
[root@izwz99hcysthbz36uveqfvz ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/centos latest 9f38484d220f 5 days ago 202 MB
删除镜像
[root@izwz99hcysthbz36uveqfvz ~]# docker rmi centos(镜像名称)
镜像的导出、导入和下载
[root@izwz99hcysthbz36uveqfvz ~]# docker pull centos(镜像名称) [root@izwz99hcysthbz36uveqfvz ~]# docker save centos > /opt/centos.tar.gz 将linux-node2的镜像导出文件上传到linux-node1机器上,而后在linux-node1机器上导入 [root@izwz99hcysthbz36uveqfvz ~]# docker load < /opt/centos.tar.gz
首次建立一个容器
[root@linux-node4 ~]# docker run centos /bin/echo "hehe" hehe
查看容器状态
能够使用docker ps只能看见存活的容器,docker ps -a 查看所有的容器,结果信息表示:
容器ID、使用的镜像、执行的命令、建立的时间、状态、端口、名称(若是不指定,自动生成)
[root@izwz99hcysthbz36uveqfvz ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 49a3dd40f0a1 centos "/bin/echo hehe" 7 seconds ago Exited (0) 6 seconds ago inspiring_mirzakhani
建立容器
--name:指定容器名称
-t:分配一个tty终端
-i:容器的标准输入保持打开的状态
[root@izwz99hcysthbz36uveqfvz ~]# docker run --name mydocker -t -i centos /bin/bash [root@405fa58d00f9 /]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.2 0.1 11820 1884 ? Ss 07:40 0:00 /bin/bash root 14 0.0 0.0 51740 1736 ? R+ 07:40 0:00 ps aux
这种方式建立自动进入容器,开启的容器只执行/bin/bash
启动、中止容器
[root@izwz99hcysthbz36uveqfvz ~]# docker start ID
[root@izwz99hcysthbz36uveqfvz ~]# docker stop ID
进入容器
[root@izwz99hcysthbz36uveqfvz ~]# docker attach 405fa58d00f9
[root@405fa58d00f9 /]#
删除容器
[root@izwz99hcysthbz36uveqfvz ~]# docker rm ID