docker数据管理
数据持久化和多个容器的数据共享。
- 数据卷是一个可供容器(多个)使用的特殊目录,将系统的目录直接映射进容器;类似mount行为。
- 对数据卷的更新不会影响镜像,解摘开应用和数据。
- 使用volume子命令来管理数据卷。
docker run -it -v /本机目录:/容器目录 #共享目录
#docker run -it -v /docker_datat:/opt/:ro #设定只读权限
---------------------------------------------[2]-----------------------------
1. 创建数据卷
docker volume create -d local test #在/var/lib/docker/volumes目录中创建了test数据卷
inspect(查看详细信息) ls(列出已有数据卷)
prune(清理无用数据卷) rm(删除数据卷)
2.绑定数据卷
在创建容器时将主机本地的任意路径挂载到容器内作为数据卷。【绑定数据卷】
使用-mount选项来使用数据卷,包括一下三种形式。
volume:普通数据卷 (映射到主机/var/lib/docker/volumes路径下)
bind:绑定数据卷 (映射到主机指定路径下)
tmpfs:临时数据卷 (只存于内存中)
使用training/webapp镜像创建一个web容器,并创建一个数据卷挂在打咯/opt/webapp目录下:
docker run -d -P --name web --mount type=bind,source=/webapp,destination=/opt/webapp training/webapp python app.py
使用特定容器维护数据卷
端口映射与容器互联
默认容器是无法从外部进行访问的,不能提供对外服务;端口映射实现从外部访问容器应用,使用参数-P或-p来进行端口映射。
-P(随机端口):随机生成一个本地端口到内部容器开放的网络端口
# -P ----》本地随即端口:22
docker run -d -P centos6_ssh
docker ps -l # 0.0.0.0:49155-->22/tcp;本地主机49155被映射到了容器22端口。访问主机49155端口就可以查看web容器提供的服务。
docker logs -f nostalgic_morse #查看应用信息
-p (指定主机端口): 指定本地端口映射到容器内的服务端口。
# -p 9999:22 ----》9999:22
docker run -d -p 9999:22 centos6_ssh #默认绑定本地所有接口上的所有地址
docker run -d -p 9999:22 -p 8080:80 centos #多次使用-p标记,可以绑定多个端口。
docker port [容器名/id] #查看容器的映射端口配置