docker是什么?
docker属于linux容器的一种封装,提供了简单易用的接口
linux容器不是一个完整的操作系统,而是对进程进行隔离。 它有
启动快
、资源占用少
、体积小
等优点
而虚拟机在与环境配置搭建上不仅
资源占用多
且冗余步骤多
和启动慢
docker常见应用
提供一次性服务
- 如定时启动服务,完成任务后关闭,节省资源
- 随时开关容器,动态扩容、缩容
快速搭建服务,提供长期服务
- 数秒内即可迅速搭建如mysql + php + nginx环境
- 支持多平台,提供无环境差别服务
- 快速搭建多配置环境,如develop、staging、production
docker 的安装
安装后查看docker版本
1 | docker version |
image
image包含应用程序及其相关依赖。 通过image生成docker容器来提供服务。
类似虚拟机的镜像文件。同一个image可以生成多个容器
查看本地所有image
1 | docker image ls |
docker hub 是docker官方的image仓库,在这里可以上传自己的image和使用他人制作完成的image
第一个应用
以mysql为例
1 | docker run --name test -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8 |
常用参数说明
参数 | 说明 |
---|---|
–name | 容器名称 |
-d | 容器后台运行,默认不加此参数时为前台运行 |
-i | 打开STDIN,用于控制台交互 |
-t | 分配tty设备,支持终端登录 |
-p | 端口映射: {本地端口}:{容器内部端口} |
-P | 暴露所有容器端口 |
-v | 目录映射: {本地目录}:{容器内部目录} |
-e | 设置环境变量 |
–env-file | 指定环境变量文件,文件格式为每行一个环境变量 |
–rm | 容器停止后自动删除 |
-m | 指定容器内存上限 |
-h | 指定容器的主机名 |
查看正在运行的docker容器
1 | docker ps |
添加phpmyadmin管理mysql
1 | docker run --name myadmin -d --link test:db -p 8081:80 phpmyadmin |
查看所有的docker容器
1 | docker ps -a |
查看log
1 | docker logs test |
监视log
1 | docker logs -f test |
通过命令行访问容器内部
并非所有容器都包含
bash
,有些仅提供sh
1 | docker exec -it test bash |
输入
exit
退出
在容器内部执行命令
1 | docker exec test /bin/bash -c 'e="hello world" && echo $e' |
删除容器
1 | docker rm container1 container2 |
删除运行中的容器
1 | docker rm -f container1 container2 |
搭建常见应用
wordpress
1 | docker run --name some-wordpress -p 8082:80 -d wordpress |