docker數據管理與端口映射(三)
阿新 • • 發佈:2018-07-30
圖片 16px pytho num size img font roc 內部
一.數據管理與端口映射
管理容器數據的方式:
數據卷: 將容器內的數據映射到宿主機目錄。
數據卷容器: 使用特定容器維護數據卷。
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
docker數據管理與端口映射(三)