1. docker与虚拟机的区别优点
docker可以完成虚拟机可以完成的所有功能,并且Vm所有虚拟机在创建的时候会虚拟独立的系统内核,而docker所有的虚拟机共用主机的系统内核,节约了虚拟环境系统部署的资源,将更好的性能提供给了应用,所以docker占用资源小,比虚拟机开启更快,更方便。
虚拟机的Guest层,还有Hypervisor层在Docker上已经被Docker Engine层所取代,在这里我们需要知道,Guest OS 是虚拟机安装的操作系统,是一个完整的系统内核,另外Hypervisor可以理解为硬件虚拟化平台,它在后Host OS以内核驱动的形式存在。
2.docker结构与组成
客户端服务端模式可单机可分布式部署 服务端负责docker镜像的构建,运行,发布.
2.1 The Docker daemon
接收Docker API请求和管理docker的对象例如镜像、容器、网络、存储卷等,
也可以和其他的Docker daemon通信管理docker的service
2.2 The Docker client
可以和多个daemon进行通信,发送指令给daemon, 用户和daemon交互主要方式。
2.3 Docker registries
存储docker镜像,Docker Cloud是一个公共仓库,是docker默认的仓库。
可以搭建私有仓库。
docker Cloud有docker可信仓库。
拉取,推送镜像到设定仓库。
Docker store允许用户购买和出售自己的镜像,也可以免费发布自己的镜像。
2.4 Docker objects
在使用docker的时候,将会涉及到创建、使用镜像、容器、网络、卷、插件或者其他的对象。
2.基础命令
docker search busybox 查找镜像
docker pull busybox 拉取镜像
docker run busybox 拉取并启动运行(运行完停止)
docker info 查看docker信息
容器生成仓库镜像ID
docker commit comtainerID imageID
从镜像创建并运行容器 (类似于create and start)
docker run -itd --name b1bb 91
镜像压缩成tar包
docker save imageid >box.tar
删除所有docker容器
docker rm -f $(docker ps -a -q)
删除所有镜像
docker rmi $(docker images -q)
加载tar包到镜像文件
docker load <box.tar
docker容器导入到tar包
docker export containerID >box.tar
把容器tar包导入到镜像
cat box.tar |docker import - 镜像名字:TAG
用该镜像启动容器命令
docker run -it --name b2 镜像名字:TAG /bin/sh
给镜像打tag,并生成新镜像
docker tag imageid vker/test:0.2
推送镜像到远程仓库
注册docker仓库
cloud.docker.com
1.登陆dockerc仓库
docker login
2.push
docker push vker/test:0.2
3.docker账号退出
docker logout
docker 创建运行run和create
docker run
-i 打开一个标准输入
-t 打开一个软终端
--name 名字 定义容器名字
docker run -it --name hello1 containerID
docker create --name hello2 containerID
查看容器
docker pa
docker ps -a 查看所有包括停止的容器
启动容器
docker start containerID
进入容器
docker attach containerID
查看容器实时情况cpu,mem
docker stats
docker stats -a 查看所有容器
docker stats containerID 查看单个容器
docker top containerID
查看文件变化情况
docker diff containerID
C 改变
A 添加
D 删除
拷贝文件
docker cp aa container:/root/
查看docker相关事件
docker events
查看镜像停止
docker wait containerID
查看组成信息
docker inspect containerID|imageID
查看容器日志
docker logs containerID
修改容器配置参数
修改ram
docker update -m 1024m --memory-swap -1 containerID
修改端口映射
docker run -it -p 80:8080 --name name container
80为宿主机端口
容器端口为8080端口
docker port ae
生成镜像
除了docker commit 还有
docker build -t vker/box:0.3 .
.是当前目录有dockerFile
3 仓库
3.1 公有仓库
最大的公开仓库是Docker Hub
演示提交镜像到Docker Hub
国内Docker Hub仓库镜像服务器,同时也可以上传自己的镜像
阿里https://dev.aliyun.com/search.html
3.2 私有仓库
docker容器的方式进行部署,客户端添加私有仓库地址。
192.168.1.109为客户端
192.168.1.110为服务端
客户端
{
"insecure-registries": ["192.168.1.110:5000"]
}
服务端
#-v /opt/docker/registry:/var/lib/registry 来映射存储
$ docker run -d -p 5000:5000 --restart always --name registry registry:2
宿主机(192.168.1.110)防火墙开通端口5000。
停止仓库
$ docker stop registry && docker rm -v registry
6 远程连接daemon 192.168.1.109为客户端
192.168.1.110为服务端
配置文件位置/etc/docker/daemon.json
{
"authorization-plugins": [],
"data-root": "",
"dns": [],
"dns-opts": [],
"dns-search": [],
"exec-opts": [],
"exec-root": "",
"experimental": false,
"storage-driver": "",
"storage-opts": [],
"labels": [],
"live-restore": true,
"log-driver": "",
"log-opts": {},
"mtu": 0,
"pidfile": "",
"cluster-store": "",
"cluster-store-opts": {},
"cluster-advertise": "",
"max-concurrent-downloads": 3,
"max-concurrent-uploads": 5,
"default-shm-size": "64M",
"shutdown-timeout": 15,
"debug": true,
"hosts": [],
"log-level": "",
"tls": true,
"tlsverify": true,
"tlscacert": "",
"tlscert": "",
"tlskey": "",
"swarm-default-advertise-addr": "",
"api-cors-header": "",
"selinux-enabled": false,
"userns-remap": "",
"group": "",
"cgroup-parent": "",
"default-ulimits": {},
"init": false,
"init-path": "/usr/libexec/docker-init",
"ipv6": false,
"iptables": false,
"ip-forward": false,
"ip-masq": false,
"userland-proxy": false,
"userland-proxy-path": "/usr/libexec/docker-proxy",
"ip": "0.0.0.0",
"bridge": "",
"bip": "",
"fixed-cidr": "",
"fixed-cidr-v6": "",
"default-gateway": "",
"default-gateway-v6": "",
"icc": false,
"raw-logs": false,
"allow-nondistributable-artifacts": [],
"registry-mirrors": [],
"seccomp-profile": "",
"insecure-registries": [],
"disable-legacy-registry": false,
"no-new-privileges": false,
"default-runtime": "runc",
"oom-score-adjust": -500,
"runtimes": {
"runc": {
"path": "runc"
},
"custom": {
"path": "/usr/local/bin/my-runc-replacement",
"runtimeArgs": [
"--debug"
]
}
}
}
服务端配置内容
{
"hosts": ["unix:///var/run/docker.sock","192.168.1.110:2357"]
}
客户端连接方式
docker -H 192.168.1.110:2357 <cmd>
来源:CSDN
作者:yhc166188
链接:https://blog.csdn.net/yhc166188/article/details/104219683