设置数据卷为只读,加上ro
docker run -d --name web -v /src/webapp:/opt/webapp:ro
如果直接挂在一个文件到容器,使用vi或者sed的时候,可能会造成文件inode的改变,从Docker 1.1.0起,这会导致报错,推荐的方式是直接挂载文件所在的目录。
数据卷容器
docker run -it -v /dbdata --name dbdata ubuntu
创建db1和db2容器,并从dbdata容器挂载数据卷
docker run -it --volumes-from dbdata --name db1 ubuntu
docker run -it --volumes-from dbdata --name db2 ubuntu
三个容器任何一方在该目录下的写入,其他容器都可以看到。
利用数据卷容器来迁移数据
备份
docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu tar cvf /backup/backup.tar /dbdata
恢复
docker run -v /dbdata --name dbdata2 ubuntu /bin/bash
docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
映射到指定地址的指定端口
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标记来指定udp端口
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
查看容器的名称除了使用docker ps,也可以使用docker inspect来进行查看
docker inspect -f "{{.Name}}" containID
在执行docker run的时候如果添加–rm标记,则容器在终止后会立刻删除。–rm和-d参数不能同时使用