Docker仓库
仓库是集中存放镜像的地方,可分为公共仓库和私有仓库
注册服务器是存放仓库的具体服务器,一个注册服务器可以有多个仓库,而每个仓库下面可以有多个镜像
private-docker.com/ubuntu:(private-docker.com是注册服务器ubuntu是仓库名)
docker hub公共镜像市场
https://hub.docker.com/
搜索官方镜像,并下载
1 | sudo docker search -s 5 centos |
Docker数据管理
容器数据管理的两种方式
数据卷:容器内数据直接映射到本地主机环境
数据卷容器:使用特定容器维护数据卷
数据卷:一个可以供容器使用的特殊目录,它将主机操作系统目录直接映射进容器
在容器内创建数据卷
挂载一个主机目录作为数据卷
1 | docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py |
加载主机目录/src/webapp到容器/opt/webapp使用training/webapp创建一个容器web
数据卷容器操作例子
创建一个数据卷容器dbdata
1 | docker run -it -v /dbdata --name dbdata ubuntu |
ok之后在其他容器中使用--volumes-from来挂载dbdata容器中的数据卷,例如db1,db2两个容器,并从dbdata容器挂载数据卷
docker run -it --volumes-from dbdata --name db1 ubuntu
docker run -it --volumes-from dbdata --name db2 ubuntu
这样三个容器都能共享数据
端口映射和容器互联
容器互联的使用
创建数据库容器
1 | docker run -d --name db training/postgres |
创建一个新的web容器,并将它连接db容器
1 | docker run -d -P --name web --link db:db training/webapp python app.py |
使用Dockerfile创建镜像
Dockerfile文本格式的配置文件
run命令:对镜像执行命令,每一个run指令,镜像就添加新的一层
cmd命令:对容器执行命令
指令说明:
from:指定创建镜像的基础镜像
run:运行命令
cmd:指定启动容器时默认执行的指令
add:从主机复制文件到容器
copy:复制主机路径下的内容到容器,目标路径不存在时,会自动创建
创建镜像
docker build .