Docker是什么
一个开源的应用容器引擎,可从Docker Hub里下载需要的镜像,比如:mongoDB,使用一句简单的命令,就可以在Docker跑起来,类似于虚拟机。
可使用KBS管理Docker,比如Docker挂了,属于自动化运维的范畴,因为比较难,先只做了解。
与虚拟机的区别
一个很典型的区别:Docker可以实现资源隔离,分多少内存就只用多少,不会吃其他地方的内存;而虚拟机即使你分了固定的内存,一旦内存泄漏,还是会吃其他地方的内存,然后卡死。
Mac安装
1 | $ brew cask install docker |
在载入 Docker app 后,点击 Next,可能会询问你的 macOS 登陆密码,你输入即可。之后会弹出一个 Docker 运行的提示窗口,状态栏上也有有个小鲸鱼的图标()。
例子:安装MongoDB镜像
1. 拉取镜像
先去Docker Hub搜索镜像,可以根据Tags
选择版本,会有命令提示
1 | docker pull mongo |
2. 查看本地镜像
1 | docker images |
3. 运行容器
例如:mongoDB
1 | $ docker run -itd --name mongo -p 44:27017 mongo --auth |
- -p 27017:27017 :映射容器服务的 44 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务
- –auth:需要密码才能访问容器服务
4. 安装成功
通过docker ps
可以查看容器的运行信息
1 | $ docker ps |
Dockerfile 创建镜像
用来创建镜像的文本内容,文本内容包含一条条构建镜像所需的指令和说明
简单的案例
1 | mkdir Dockerfile |
常用指令
- RUN 在
docker build
时运行 - CMD 在
docker run
时运行
1 | 基于centos镜像 |
Dockerfile结构大致分为四个部分:
- 基础镜像信息
- 维护者信息
- 镜像操作指令
- 容器启动时执行指令
更详细的介绍,参考这篇文章:你必须知道的Dockerfile
Docker常用命令
1 | docker build -t friendlyname . # 使用此目录的“Dockerfile”创建镜像 |