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

一.数据管理与端口映射

  管理容器数据的方式:

数据卷: 将容器内的数据映射到宿主机目录。

数据卷容器: 使用特定容器维护数据卷。

 

1.在容器内创建一个数据卷:

 # docker run -itd --name testpy --restart=always -v /data python:3
 
 查看容器内是否有/data目录:
 #docker exec -it testpy
 或者:
 #docker attach testpy

2.挂载一个主机目录作为数据卷。/test是宿主机目录,/data是容器目录:

 # docker run -itd --name test1 -v /test:/data python:3
 # docker exec -it test1 /bin/bash
 # ls data/
   test.py

3.docker挂载数据卷的默认权限是读写(rw),可通过ro指定为只读。

   # docker run -itd --name test1 -v /test:/data:ro  python:3
   # docker exec -it test1 /bin/bash
   # ls data/

4.数据卷容器:

在多个容器之间共享一些持续更新的数据

# docker run -itd -v /dbdata --name dbdata python:3
# ls dbdata/
 
# docker run -itd -v /test:/dbdata --name dbdata python:3
# docker run -itd --volumes-from dbdata --name db1 python:3
# docker run -itd --volumes-from dbdata --name db2 python:3
 
# docker exec -it db1 /bin/bash
# echo "db1 test" >> dbdata/db1-test.txt
# ls dbdata/
db1-test.txt  db2-test.txt  test.py
 
# docker exec -it db2 /bin/bash
# echo "db2 test" >> dbdata/db2-test.txt
# ls dbdata/
db1-test.txt  db2-test.txt  test.py
 
宿主机目录下:
# ls /test/
db1-test.txt  db2-test.txt  test.py
可使用--volumes-from 参数来从多个容器挂载多个数据卷。

删除一个数据卷:

# docker stop db1 db2
# docker rm -f $(docker ps -a -q)

二.端口映射实现访问容器

1.  从外部访问容器:

-P 随机分配一个宿主机端口到内部容器开放的网络端口(22)

# docker run -itd -P --name sshrun centos-ssh:v1

指定映射端口:

# docker run -d -p 88:80 nginx:v1

多次使用-p可以绑定多个端口:

# docker run -d -p 90:22  -p 91:8080 --name sshtest centos-ssh:v1


映射到指定IP地址的指定端口:

# docker run -itd –p 18.18.23.107:101:22  --name test1  centos-ssh:v1


用udp指定udp端口:

# docker run -itd -p 40:25/udp --name test2 centos-ssh:v1

 

查看映射端口:

#docker port containername

原文地址:http://blog.51cto.com/liyuanjie/2151941

时间: 2024-11-05 20:47:57

docker数据管理与端口映射(三)的相关文章

教你如何修改运行中的docker容器的端口映射

在docker run创建并运行容器的时候,可以通过-p指定端口映射规则.但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改.当docker start运行容器后并没有提供一个-p选项或设置,让你修改指定端口映射规则.那么这种情况我们该怎么处理呢?今天Docker君教你如何修改运行中的docker容器的端口映射? 方法一:删除原有容器,重新建新容器 这个解决方案最为简单,把原来的容器删掉,重新建一个.当然这次不要忘记加上端口映射. 优缺点:优点是简单快捷,在测试环境使用较多.缺点是如

[转帖]教你如何修改运行中的docker容器的端口映射

在docker run创建并运行容器的时候,可以通过-p指定端口映射规则.但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改.当docker start运行容器后并没有提供一个-p选项或设置,让你修改指定端口映射规则.那么这种情况我们该怎么处理呢?今天Docker君教你如何修改运行中的docker容器的端口映射? 方法一:删除原有容器,重新建新容器 这个解决方案最为简单,把原来的容器删掉,重新建一个.当然这次不要忘记加上端口映射. 优缺点:优点是简单快捷,在测试环境使用较多.缺点是如

如何修改运行中的docker容器的端口映射

在docker run创建并运行容器的时候,可以通过-p指定端口映射规则.但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改.当docker start运行容器后并没有提供一个-p选项或设置,让你修改指定端口映射规则.那么这种情况我们该怎么处理呢?今天Docker君教你如何修改运行中的docker容器的端口映射? 方法一:删除原有容器,重新建新容器 这个解决方案最为简单,把原来的容器删掉,重新建一个.当然这次不要忘记加上端口映射. 优缺点:优点是简单快捷,在测试环境使用较多.缺点是如

修改docker的port端口映射

原以为修改docker的端口映射只是一条命令就可以搞定,结果发现没那么简单,记录一下以防忘记.1. 查看需要修改的容器,记住container iddocker ps -a2. 停止容器docker stop xxx3. 修改容器的端口映射配置文件vim /var/lib/docker/containers/{container_id}/hostconfig.json "PortBindings": { "80/tcp": [ { "HostIp"

修改docker容器的端口映射

大家都知道docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改.通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射. 有没有办法不保存镜像而直接修改已有的这个容器呢?有.在stackoverflow上面找到答案了. 方法一 1.停止容器(docker stop d00254ce3af7) 2.停止docker服务(systemctl stop docker) 3.修改这个容器的hostconfig.json文件中的端口(原帖有人提到,如果con

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

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

macOS修改Docker容器的端口映射配置

查询容器ID 查询需要修改端口映射的容器ID docker inspect [OPTIONS] NAME|ID [NAME|ID...] OPTIONS说明 -f :指定返回值的模板文件. -s :显示总的文件大小. --type :为指定类型返回JSON. 进入Docker文件目录 cd ~/Library/Containers/com.docker.docker 使用screen进行登陆 cd /Data/vms/0 screen tty 进入配置文件夹 cd /var/lib/docker

Docker数据管理与网络通信

Docker镜像的创建方法 Docker镜像除了是Docker的核心技术之外也是应用发布的标准格式.一个完整的Docker镜像可以支撑一个Docker容器的运行,在Docker的整个使用过程中,进入一个已经定型的容器之后,就可以在容器中进行操作,最常见的就是在容器中安装应用服务,如果要把已经 安装的服务进行迁移,就需要把环境以及搭建的服务生成新的镜像. 创建镜像的方法有三种: 基于已有镜像创建 基于本地模板创建 基于Docherfile创建 基于已有镜像创建 使用docker commit命令,

[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访问