[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/postgresdocker 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

原文地址:https://www.cnblogs.com/allbetter/p/11068682.html

时间: 2024-10-27 10:35:56

[docker] 05 docker仓库&数据管理&端口映射的相关文章

如何修改Docker已运行实例的端口映射

如何修改Docker已运行实例的端口映射 Docker的端口映射,往往出现在两个阶段需要处理: 1.是在docker启动前就已经确定好,哪个docker实例映射哪个端口(往往这个情况比较,需要提前做规划). 2.在docker运行过程中,需要增加端口映射的(往往这个情况比较多,凡事先运行起来,遇到问题再解决,哈哈) 那我们这一篇文章要解决已经创建的容器,如何修改端口 1)确定要修改端口的容器 dockder ps 记下容器id 2)停止运行的容器 docker stop 容器ID 3)找到容器的

Docker容器——镜像管理,端口映射,容器互联

docker镜像的分层  Dockerfile 中的每个指令都会创建一个新的镜像层: 镜像层将会被缓存和复用: 当 Dockerfile 的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效: 某一层的镜像缓存失效之后,它之后的镜像层缓存都会失效: 镜像层是不变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然包含该文件 docker镜像 是应用发布的标准格式 可支撑一个docker容器的运行 docker镜像的创建方法 基于已有镜像创建 基于

docker数据管理与端口映射(三)

一.数据管理与端口映射   管理容器数据的方式: 数据卷: 将容器内的数据映射到宿主机目录. 数据卷容器: 使用特定容器维护数据卷.   1.在容器内创建一个数据卷:  # docker run -itd --name testpy --restart=always -v /data python:3    查看容器内是否有/data目录:  #docker exec -it testpy  或者:  #docker attach testpy 2.挂载一个主机目录作为数据卷./test是宿主机

docker学习---docker基础知识

目录 docker的基础 1.安装docker 2.使用镜像 3.镜像迁移|导入和导出 4.docker Hub介绍 5.搭建私有镜像仓库 5.1.docker开源的镜像分发工具--docker Registry 5.2.harbor部署 6.使用容器 7.容器导出和导入 8.数据卷 9.网络访问 10.dockerfile 10.1.基础指令 10.2.控制指令 10.3.引入指令 10.3.执行指令 10.4.配置指令 10.5.特殊用法 docker的基础 1.安装docker yum i

Docker基本控制命令(资源控制、数据卷及数据卷容器、镜像创建、端口映射、私有仓库)

一.资源控制 1.CPU使用率控制 限制该镜像本次建立的容器最大只能占总资源的10% docker run --cpu-quota 10000 centos 2.按比例分配 创建两个容器为c1和c2,若只有这两个容器,设置容器的权重,使得c1和c2的CPU资源占比为33.3%和66. 7% docker run -itd --name c1 --cpu-shares 512 centos(镜像名)docker run -itd --name c2 --cpu-shares 1024 centos

Docker中通过模板创建镜像,Docker容器、仓库及数据管理

1.通过模板创建镜像 (1)首先去下载一个模板 http://openvz.org/Download/templates/precreated //下载速度不快,阿铭下载了一个centos6的模板centos-6-x86-minimal.tar.gz (2)导入该镜像的命令为: cat centos-6-x86-minimal.tar.gz|docker import - centos6 (3)查看导入的镜像 docker images (4)导出镜像: 把现有镜像,导出为一个文件: docke

Docker入门:概念 镜像 容器 仓库 数据管理

时间<<--->>时间戳:进行时间计算时,需要利用转换的时间戳实现 date  +%Y%m%d  -d @148569820<<--->>date +s% -d '2016-11-16 16:00:00'     --- 小 Q ---------------------------------------------------------------------------------------------------- Docker 概 念  一个开

Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指。

Docker简介 Docker是开源应用容器引擎,轻量级容器技术. 基于Go语言,并遵循Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux系统上,也可以实现虚拟化 容器完全使用沙箱技术,相互之间不会有任何接口 类似于虚拟机技术(vmware.vitural),但docker直接运行在操作系统(Linux)上,而不是运行在虚拟机中,速度快,性能开销极低 白话文,简介就是: Docker支持将软件编译成一个镜像,然

解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题

在docker中运行第三方服务时,通常需要绑定服务端口到本地主机.但使用 -p 参数进行的端口映射,会自动在iptables中建立规则,绕过firewalld,这对于端口级的黑白名单控制管理是很不利的,所以我们需要对iptables进行手动修改. 这里以从名为centos.19.09.05的image建立一个容器为例: 首先,如果系统是CentOS7的话,需要关闭自带firewalld防火墙,并切换为iptables. 假设需要将新容器的27017端口映射到主机的27017端口,一般情况下我们使