Docker入门
Docker入门,来自Docker官方文档 《Docker User Guide》
Docker安装
参见之前的博文
使用Docker Hub
从Docker Hub中下载镜像比较慢,可以从docker.cn网站下载。
查看本机镜像
打包应用:Hello, World
Hillo World
可以在容器中直接运行命令:
交互容器
在容器中运行可交互的终端
守护程序
使用选项-d创建后台运行的容器
返回的字符串为容器的ID号。
查看当前容器:docker ps
NAMES是自动生成的容器名,可以使用参数人为指定。
查看某个容器的输出:docker logs
停止容器运行:docker stop
操控容器
在容器中运行web应用
参数-P表示让Docker自动将容器所有需要的端口映射到宿主机上。
查看web应用容器
PORTS列显示将容器内的5000端口映射到宿主机的49153端口,这就是应为设置-P选项。
可以用-p选项指定映射的端口:
查看web应用日志
使用-f选项动态更新
查看web应用容器进程
查看web应用容器
停止容器
重新启动容器
也可以使用docker restart重新启动。
删除容器
删除正在运行的容器会出错
需要先停止容器
操控docker镜像
列出宿主机上的所有docker镜像
使用image时最好指定标签。
获取镜像
查找镜像
创建自己的镜像
提交镜像
查看是否生成镜像
从Dockerfile创建镜像
折腾一上午没有搞定ubuntu,更新时总出错。只好改为用centos。
gem安装时也需要添加国内淘宝源地址,删掉原有的地址。
Dockerfile
创建镜像
当前镜像
设置镜像标签
上传镜像
上传镜像到Docker Hub
从宿主机删除镜像
链接容器
之前介绍过可以通过端口链接docker容器,本节先复习网络端口映射方法,再介绍一种新的方法:容器链接。
网络端口映射
-P参数
-p参数
指定ip地址+端口
使用udp
查看端口映射
容器链接
容器命名
容器链接需要用到容器名,之前已经看到docker会自动给容器命名,也可以使用–name给容器命名。
容器链接
运行postgres镜像,并命名为db
删除之前创建的web容器
创建web容器,连接db容器
查看信息
容器链接使得源容器向目标容器提供信息,两种方式暴露信息:
环境变量
更新/etc/hosts文件
环境变量
详情参看docker文档
推荐使用hosts方式
更新/etc/hosts文件
打开一个容器终端
查看hosts文件
测试
重启source容器,连接容器的hosts会自动更新
另一个窗口中重启源容器
当前窗口再次查看hosts
操控容器中的数据
两种方式:
Data volumes
Data volume containers
Data volumes
添加data volumes
Dockerfile中使用VOLUME设置
挂载主机目录
只读挂载
挂载文件
可以挂载文件,但推荐挂载父目录
创建并加载Data volume container
备份、恢复或迁移data volume
备份
恢复
该部分还没有实际应用过,待以后补充。