docker 包括三个基本概念
1.镜像(Image)
2.容器(Container)
3.仓库(Repository)
docker的特性:
1.文件系统隔离:每个进程容器运行在完全独立的根文件系统里。
2.资源隔离:可以使用cgroup为每个进程容器分配不同的系统资源,例如CPU和内存。
3.网络隔离:每个进程容器运行在自己的网络命名空间里,拥有自己的虚拟接口和IP地址。
4.写时复制:采用写时复制方式创建根文件系统,这让部署变得极其快捷,并且节省内存和硬盘空间。
5.日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
6.变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
7.交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell。
docker安装与启动
- ##构建一个docker 镜像
docker build -t cdphere/mysql:5.6 .
- ##查看有哪些镜像文件
docker images
- ##运行一个镜像
docker run -d -p 3306:3306 --name dbserver csphere/mysql:5.6
-P 大写的p 指定的端口 后面重启宿主主机的端口与容器暴露的端口会变化
docker run -d -p 3306:3306 --name dbserver -v /var/lib/docker/vfs/dir/mydata:/var/lib/mysql csphere/mysql:5.6
- ##查看所有状态的容器
docker ps -a
- ##进入docker容器中(交互式)
docker exec -it dbserver /bin/sh
Docker attach可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。
但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。
- ##查删除镜像
docker rm -f dbserver
- ##停止镜像,后面这个是id 可以不用敲全,找的到就可以了
docker stop d03
- ##ENTRYPOINT/CMD区别
ENTRYPOINT/CMD都只能在文件中存在一次,并且最后一个生效 多个存在,只有最后一个生效,其它无效!
需要初始化运行多个命令,彼此之间可以使用 && 隔开,但最后一个须要为无限运行的命令,需切记!
ENTRYPOINT,表示镜像在初始化时需要执行的命令,不可被重写覆盖,需谨记 但是使用--entrypoint 也可以覆盖
CMD,表示镜像运行默认参数,可被重写覆盖
停止所有的container,这样才能够删除其中的images:
docker stop $(docker ps -a -q)
如果想要删除所有container的话再加一个指令:
docker rm $(docker ps -a -q)
参考资料:
http://git.oschina.net/itmuch/spring-cloud-book
版权声明:本文为CSDN博主「weixin_34313182」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_34313182/article/details/92088269