一.数据管理与端口映射
管理容器数据的方式:
数据卷: 将容器内的数据映射到宿主机目录。
数据卷容器: 使用特定容器维护数据卷。
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