数据卷 是被设计用来持久化数据的,它的生命周期独立于容器,Docker不会在容器被删除后自动删除数据库,也不存在垃圾回收机制处理没有任何容器引用的数据卷。
如果要在删除容器时候删除数据就,可以在删除容器时候使用 docker rm -v 这个命令
清除数据卷
docker volume prune // 清除无主的数据卷
--mount 可以挂载一个本地主机目录导容器中去
docker run -d -P \
--name web \
--mount type=bind, source=http://www.likecs.com/src/webapp, target=http://www.likecs.com/opt/webapp \
training/webapp \
python app.py
//上面的命令就是挂在主机的 /src/webapp 目录到容器的 /opt/webapp 目录。
2.4 网络 端口绑定参数:
-P(大写) :Docker会随机映射一个 49000-49900 的端口到内部容器开发的网络端口
-p(小写) : 自定义端口映射
映射随机端口:
docker run -d -P training/webapp python app.py
docker container ls -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse
//本地主机的 49155 被映射到了容器的5000端口。此时访问本机的49155端口即可访问容器内web应用提供的界面
查看应用信息
docker logs -f nostalgic_morse
自定义端口映射
docker run -d -p 5000:5000 training/webapp python app.py
// 默认把本机所有地址的映射到5000端口上
自定义指定地址的端口:
docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py
自定义地址的任意端口
docker run -d -p 127.0.0.1::5000 training/webapp python app.py
指定udp端口
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
查看映射端口配置 docker port
docker port nostalgic_morse 5000
绑定多个端口 -p
docker run -d \
-p 5000:5000 \
-p 3000:80 \
training/webapp \
python app.py
一般使用docker,会使用 --link 来使容器互连。
现在则可以使用 -d 参数来指定docker的网络类型。docker网络类型有 bridge,overlay。
创建新的docker网络
docker network create -d bridge first-net
连接容器
docker run -it --rm --name busybox1 --network first-net busybox sh
// 打开新的终端,在运行一个容器并加入 first-net 网络
docker run -it --rm --name busybox2 --network first-net busybox sh
// 在打开一个终端查看容器信息
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b47060aca56b busybox "sh" 11 minutes ago Up 11 minutes busybox2
8720575823ec busybox "sh" 16 minutes ago Up 16 minutes busybox1
// 用ping命令证明容器busybox1和容器busybox2建立了互连关系
// 进入 busybox1 容器,然后输入以下命令
ping buxybox2
PING busybox2 (172.19.0.3): 56 data bytes
64 bytes from 172.19.0.3: seq=0 ttl=64 time=0.072 ms
64 bytes from 172.19.0.3: seq=1 ttl=64 time=0.118 ms
docker_practice