理解Docker的仓库

Docker仓库

仓库是集中存放镜像的地方,可分为公共仓库私有仓库

注册服务器是存放仓库的具体服务器,一个注册服务器可以有多个仓库,而每个仓库下面可以有多个镜像

private-docker.com/ubuntu:(private-docker.com是注册服务器ubuntu是仓库名)

docker hub公共镜像市场

https://hub.docker.com/

搜索官方镜像,并下载

1
2
3
sudo docker search -s 5 centos

sudo docker pull cenros

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 .