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

image.png

image.png


指定映射端口:

# 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

image.png


用udp指定udp端口:

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

 

查看映射端口:

#docker port containername
相关文章
相关标签/搜索