在线网页制作网站,搜索点击软件,网站技术防护建设,wordpress 充值卡Docker优势#xff1a; 1.交付物标准化#xff1a;标准化设计大大提高了物流体系的运行效率。传统的软件交付物包括#xff1a;应 用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准 化组件。… Docker优势 1.交付物标准化标准化设计大大提高了物流体系的运行效率。传统的软件交付物包括应 用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准 化组件。 2.一次构建多次交付类似于集装箱的一次装箱多次运输Docker镜像可以做到一次 构建多次交付 3.应用隔离Docker可以隔离不同应用程序之间的相互影响但是比虚拟机开销更小 总之容器技术部署速度快开发测试更敏捷提高系统利用率降低资源成本。 Docker的度量Docker是利用容器来实现的一种轻量级的虚拟技术从而在保证隔离性的 同时达到节省资源的目的。Docker的可移植性可以让它一次建立到处运行。Docker的度量可以从以下四个方面进行 1.隔离性Docker采用libcontainer作为默认容器代替了以前的LXC。libcontainer的隔离性主要是通过内核的命名空间来实现的有pid、net、ipc、mnt、uts命令空间将容器的进程、网络、消息、文件系统和主机名进行隔离。 2.可度量性 Docker主要通过cgroups控制组来控制资源的度量和分配。 3.移植性Docker利用AUFS来实现对容器的快速更新。AUFS是一种支持将不同目录挂载到同一个虚拟文件系统下的文件系统支持对每个目录的读写权限管理。 4.安全性安全性可以分为容器内部之间的安全性容器与托管主机之间的安全性。容器内部之间的安全性主要是通过命名空间和cgroups来保证的。容器与托管主机之间的安全性主要是通过内核能力机制的控制可以防止Docker非法入侵托管主机。 一、安装配置docker
1.国内源安装新版docker
配置阿里云Docker Yum源# yum install -y yum-utils device-mapper-persistent-data lvm2 git# yum-config-manager --add-repo http://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo
安装最新版本# yum install docker-ce -y
查看docker版本# yum list docker-ce --showduplicates
启动docker服务# systemctl enable docker# systemctl start docker
查看docker版本状态# docker -v
查看docker运行状态# docker info2.生成docker的环境配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json -EOF
{registry-mirrors: [https://pilvpemn.mirror.aliyuncs.com],exec-opts: [native.cgroupdriversystemd],log-driver: json-file,log-opts: {max-size: 100m},storage-driver: overlay2
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
#注意一定注意编码问题出现错误---查看命令journalctl -amu docker 即可发现错误
3.docker数据存储位置
查看存储路径
[rootyixuan ~]# docker info | grep Root
修改默认存储位置
在dockerd的启动命令后面追加--data-root参数指定新的位置
[rootyixuan ~]# vim /usr/lib/systemd/system/docker.service
ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock --data-root/data
[rootyixuan ~]# systemctl daemon-reload
[rootyixuan ~]# systemctl restart docker
查看是否生效
[rootyixuan ~]# docker info | grep Root
二、Doctor的基础命令
镜像管理 # 搜索镜像 -f 指定star数量 docker search iname [-f starts100] # 拉取镜像 docker pull iname #查看本地镜像 -q 只显示id docker image list docker images docker image ls #查看镜像的详细信息 docker image inspect iname #删除镜像 docker rmi iname #删除所有镜像 -f 强制删除但是实际镜像不会删除如果镜像删除不掉说明可能有容器正在运行 docker rmi $(docker images -q) [-f] #查看镜像的制作过程 docker history iname 容器管理 #创建容器 -i 标准的输入输出 -t 分配一个虚拟终端 -d 后台运行 --name 指定容器的名字 -p 指定端口映射 -e 指定环境变量 docker run -itd iname #运行回启动容器 docker create -it iname #创建容器但是不启动 #查看运行中容器-a 可以查看所有状态 docker ps #删除容器 -f 强制删除 docker rm [-f] cname #查看容器的详细信息 docker inspect cname #启动 docker start #关闭 docker stop #重启 docker restart #挂起 docker pause #恢复 docker unpause #强制关闭 docker kill #进入容器 docker attach cname #通过命令进入容器 command不常用 docker exec -it cname command #进入容器在退出时无需执行ctrlpq不会影响容器运行command可以直接写为 /bin/bash #复制 docker cp cname:path hostpath #查看容器内的进程 docker top cname #容器使用宿主机资源情况 docker stats [cname] #查看容器日志 docker logs cname #等待容器关闭返回值 docker wait #docker 服务日志 docker events #展示已经映射的端口 docker port cname #查看容器内部的变化 docker diff 容器打包 docker export -o cname.tar cname 或 docker export cname iname.tar cname为容器名iname为镜像名 #导入镜像归档文件到其他宿主机 docker import cname.tar cname:v1 镜像迁移 #保存一台宿主机上的镜像为tar文件然后可以导入到其他宿主机上save 讲镜像打包与下面的load命令相对应 docker save -o nginx.tar nginx:tag load #与上面的save命令相对应将上面save命令打包的镜像通过load命令导入 docker load nginx.tar #容器的迁移 docker export b25f3c | gzip mynginx123.tar zcat mynginx123.tar | docker import - mynginx123 镜像容器深度操作 #显示镜像摘要 docker images --digests #过滤镜像 docker images [-f|--filter] keyvalue dangling显示标记为空的镜像值只有true和false label这个是根据标签进行过滤其中lable的值是docker在编译的时候配置的或者在Dockerfile中配置的 before这个是根据时间来进行过滤其中before的value表示某个镜像构建时间之前的镜像列表 since跟before正好相反表示的是在某个镜像构建之后构建的镜像 reference添加正则进行匹配 #镜像格式化输出 docker images --format {{.ID}}\t{{.Repository}} .ID 镜像ID .Repository 镜像仓库 .Tag 镜像标签[版本] .Digest 镜像hash值 .CreatedSince 创建镜像后的时间 .CreatedAt 创建镜像的时间 .Size 镜像大小 #容器格式化输出 docker ps --format {{.ID}}\t{{.Command}} .ID 容器ID .Image 镜像ID .Command 执行的命令 .CreatedAt 容器创建时间 .RunningFor 运行时长 .Ports 暴露的端口 .Status 容器状态 .Names 容器名称 .Label 分配给容器的所有标签 .Mounts 容器挂载的卷 .Networks 容器所用的网络名称