版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zz709196484/article/details/78747521
Docker 作为一种新的虚拟化方式 比KVM 多了无可比拟的优势
共用一个内核 , 实现秒级启动 比传统虚拟机 从头BIOS 了
所以作为对新事物的感受个体验 , 赶紧记录之
Image 和 Container
image 就相当于我们装虚拟机的时候的 ISO 的光盘镜像文件, 包含着我们我们所需的所有东西
当 Image 运行起来 就产生了我们的 Container (容器)
Image 的获取
首先我们获取我们的image (很简单的一条命令) like git
docker pull najjannaj/face_recognition
然后,自动获取增量 , 像是我们git 的 push 一样 , 一次次的 拉取本地
(服务器在国外, 过程相对漫长)
这个是一个人脸识别的环境, 然后, 简简单单 一键部署 , 简直美滋滋
容器的部署
docker run -d -p8080:8080 -vfaces:/root/faces najjannaj/face_recognition
然后 下载了镜像,就是容器的部署了, 上述命令 就ok了
- run 是运行一个container
- d 参数是daemon , 说明这个dock在后台为守护进程
- -p(ort) 是本机 与容器的端口映射 8080 : 8080
- -v (olume) 本地目录到容器目录的映射
- [arg] 最后指定 是哪个image
一个回车, 过几秒, 我们的容器就跑起来了, 可以访问 localhost:8080 检验
与容器通信
看官方的manual 描述是 直接使用
docker attach container[id][name]
可是在这里尝试attach上去之后 , 只有卡死的命令行, 完全没有交互, 不时的有dbg消息输出
所以 我们弄错了东西
sudo docker run -d -p8080:8080 -vfaces:/root/faces najjannaj/face_recognition /bin/sh
重点在于后面, 的 /bin/sh 这个相当于我们exec的
没有执行 bash 所以是没有交互的
换了命令后就有了
如果后面再想执行shell 的话, 可以使用
$ sudo docker exec -t -i containerID /bin/bash