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

备份

恢复

该部分还没有实际应用过,待以后补充。