docker入门二
docker数据管理
1.数据拷贝
容器和宿主机之间的拷贝
docker cp
2.数据卷
宿主机的存储目录
要将目录中的数据和docker容器进行数据共享
数据卷在docker中的应用
挂载时机:
//在创建容器的时候
docker create
//创建并启动容器的时候
docker run
//数据卷挂载参数
-v,,,,--volume list
//举例
docker run -itd --name ubuntu -v 宿主机路径:容器路径 ubuntu bash
注意
宿主机写绝对路径,不然映射会失败
容器路径可以随便写,不存在的话会自动创建
权限问题:
通过-v进行数据卷挂载,
默认是读写的挂载方式
权限是限制容器的, rw
可以修改权限,改为只读, ro
举例:
docker run -itd --name ubuntu -v 宿主机路径:容器路径:ro ubuntu bash
2种挂载方式
1.挂载目录
2.挂载文件
挂载目录
//启动容器
docker run -itd --name test1 -v /home/abc:/mytest ubuntu bash
//进入容器
docker exec -it test1 bash
//退出
exit
//查看一下宿主机的/home/abc中的文件有没有被同步
docker
数据卷容器
//创建数据卷容器
docker run/create -itd --name container -v /backup ubuntu bash
-v /backup: 在数据卷容器container创建了一个映射目录
被创建出的container容器叫 数据卷容器
数据卷容器的挂载和使用
//其他容器挂载数据卷容器
--volumes-from list
//容器1 test1
docker run -itd --name test1 --volumes-from container ubuntu bash
//容器2 test2
docker run -itd --name test2 --volumes-from container ubuntu bash
数据卷容器数据备份
//创建数据卷容器
docker run -itd --name container -v /backup ubuntu bash
//创建挂载数据卷容器的容器
docker run -itd --name test1 --volumes-from container bash
docker run -itd --name test2 --volumes-from container bash
//进入test1或者test2对backup目录进行写操作
//数据备份
1.创建一个用于数据备份的容器,数据从数据卷容器中备份到宿主机
2.备份容器需要挂载到数据卷容器
3.备份容器需要和宿主机有映射关系
docker run -itd --name temp --volumes-from container -v /home/abc/data:/xxx ubuntu bash
//进入备份容器temp
docker exec -it temp bash
//精简一下
docker run -itd --name temp --volumes-from container -v /home/abc/data:/xxx ubuntu tar zcvf /xxx/backup.tar.gz /backup
docker run -itd --name temp --volumes-from container -v /home/abc/data:/xxx ubuntu tar zcvf /xxx/backup.tar.gz /backup
备份数据恢复到数据卷容器
docker run -itd --name temp --volumes-from container -v /home/abc/data:/xxx ubuntu bash
docker exec -it temp bash
//解压
run -itd --rm --name temp --volumes-from container -v /home/abc/data:/xxx ubuntu tar zxvf /xxx/backup.tar.gz -C /backup
docker端口映射
1.随机端口映射
docker run
-P 随机端口
-p 手动指定端口
docker run -itd --name nginx -P nginx
http协议:80
https协议:443
ftp协议: 21
一个IP确定一个主机
一个端口确定一个进程
docker网络管理
docker network --help
1.connect
2.create
3.disconnect
4.inspect
5.ls
6.prune
7.rm
bridge网络模式
创建
docker network create
参数: -d --drive 默认桥接bridge
--gateway
--subnet
自定义网段与网关
在自定义网络中启动容器
docker run -itd --name test2 --network
容器连接网络
docker network connect
容器断开网络
docker network disconnect
1.我们启动一个容器的时候
这个容器会加入到默认的网络中
2.一个容器可以同时加入到多个网络中
3.容器和容器之间如果想要通信,有一个前提
就是这两个容器要在同一个网络中
自定义网段与网关
docker network create --subnet 180.18.0.0/24 --gateway 180.18.0.1 mytest1
host网络
我们尝试这样做
docker network create -d host myhost
这样是不行的
报错
only one instance of "host" network is allowed
所以host网络是不能再创建的
只能有一个
那么我们启动容器的时候
可以让容器加入host网络
docker run -itd --network host --name hosttest ubuntu bash