[docker] 05 docker仓库&数据管理&端口映射
Posted allbetter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[docker] 05 docker仓库&数据管理&端口映射相关的知识,希望对你有一定的参考价值。
主要内容:
一、仓库市场
二、搭建本地私有仓库
三、数据卷
四、数据卷容器
五、端口映射
六、容器互联
一、仓库市场
1.1. 官方仓库:https://hub.docker.com/search/?q=&type=image
1.2. 第三方仓库:包括腾讯云 网易云、阿里云、DaoCloud等
二、搭建本地私有仓库
2.1. 使用resgistry镜像创建私有仓库
docker run -d -p 5000:5000 registry
查看ip,修改docker服务启动参数默认使用http访问,在ExecStart增加:
--insecure-registry 192.168.136.137:5000
重启docker:
systemctl daemon-reload systemctl restart docker
//重启本地私有仓库容器,若docker没有配置自动重启容器参数(--restart=on-failure:10),则需要手动重启
docker start sa
修改上传镜像的tag,并上传到本地服务器仓库:
docker tag alpine:3.8 192.168.136.137:5000/test docker push 192.168.136.137:5000/test //curl -XGET http://192.168.136.137:5000/v2/tag_name/tags/list
三、数据卷
3.1. 数据卷(Data Volumes)
数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的Mount。
3.2. 创建数据卷(参数可用man docker-volume-create来查看)命令
docker volume create -d local local_volume
3.3. 查看数据卷列表
docker volume ls
3.4. 查看数据卷信息
docker volume inspect local_volume
3.5. 删除数据卷
docker volume rm local_volume
3.6. 清理无用数据卷
docker volume prune
3.7. 绑定数据卷
绑定数据卷用-mount参数,有三种类别:
- volume:普通数据卷,即通过docker volume create创建的数据卷,非docker是不可以去修改里面的内容的。
- bind:绑定数据卷,即可以绑定宿主主机指定路径。
- tmpfs:临时数据卷,只存在于内存中。
绑定数据卷:
mkdir /src docker run -d -P --mount type=bind,source=/src,destination=/dest nginx
四、数据卷容器
4.1. 创建数据卷容器,并在容器数据卷中创建文件test_db,在宿主主机数据卷目录下查看:
docker volume create db
docker run -d --mouont source=db,target=/db nginx
4.2. 挂载数据卷容器中的数据卷,在新起的容器中查看挂载数据卷的内容:
docker run -d --volumes-from 53 nginx
五、端口映射
5.1. 从外部访问容器应用
在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的 。如果需要让外部访问这些应用时,则需要通过-P或-p来指定端口映射。
-P和-p的区别:
-P:Docker会随机映射一个端口到内部容器开放的网络端口。
-p:可以指定要映射的端口,并可以在指定端口上绑定一个容器。
本地主机的32768端口被映射到了容器的80端口,访问宿主主机的端口即可访问容器内web应用提供的界面:
docker run -d -P nginx
5.2. 映射所有接口地址
使用HostPort:ContainerPort格式本地的5427端口映射到容器的5427端口,此时会默认绑定本地所有接口上的所有地址:
docker run -d -p 5427:5427 nginx
5.3. 映射到指定地址的指定端口
使用IP:HostPort:ContainerPort格式指定映射使用一个特定地址,比如localhost地址127.0.0.1:
docker run -d -p 127.0.0.1::5427
5.4. 查看映射配置
docker port 4c 5427
六、容器互联
容器互联是一种让多个容器中的应用相互交互的方式。它会在源和接收容器之间创建连接关系,接收容器可以通过容器名快速访问到源容器,而不用指定具体的IP地址。
6.1. 使用--link参数可以让容器之间安全地进行交互:
docker run -d --name db training/postgres
docker run -d -P --name web --link db training/webapp
docker在两个容器之间创建了一个虚机通道,而且不用映射它们的端口到宿主主机上:
6.2. 查看容器公开的连接信息:
6.3. 在容器中安装ping命令来测试容器的连通:
apt-get install -yqq inetutils-ping
其它参考:
Docker 持久存储介绍(十三):https://blog.51cto.com/wzlinux/2047637
以上是关于[docker] 05 docker仓库&数据管理&端口映射的主要内容,如果未能解决你的问题,请参考以下文章