查看docker网络设置
docker network [option]
通过docker inspect 容器ID 可以查看容器所在网络的NETWORK ID
通过查看docker网络信息,找到容器所在网络
数据卷挂载
如果想让容器内部一些数据持久化,可以通过数据挂载来实现
在使用docker run
命令时,使用-v
参数来进行数据卷挂载。
- 创建一个数据卷
docker run [option] -v [容器目录] 镜像ID
这样创建后,容器中的这个目录会自动挂载到本地主机的/var/lib/docker/volumes/随机ID/_data
目录下,可以通过docker inspect 容器ID
来查看具体是哪个目录
- 创建一个数据卷并挂载到本地主机
docker run [option] -v [主机目录]:[容器目录] 镜像ID
这样创建后,挂载一个本地目录到容器中去,本地目录下的文件变化会同步到容器中去,反之亦然。例如:
docker run -d -v /root/test/log:/usr/local/apache2/log -p 8080:80 httpd-test:v3
- 容器间数据共享
- 如果需要几个容器之间实现数据共享,当启动一个容器并挂载了数据卷之后,再启动另外一个容器,使用
docker run [option] --volumes-from [已启动容器ID] [镜像ID]
,来实现两个容器间的数据共享。 - 如果多个容器之间实现数据共享,可以创建一个数据卷容器,创建一个数据卷,然后在启动其他容器时通过
--from-volumes
,挂载数据卷容器中的数据卷。
- 如果需要几个容器之间实现数据共享,当启动一个容器并挂载了数据卷之后,再启动另外一个容器,使用
##创建数据卷容器
docker run -d -v /data --name dataContainer imagesID
## 使用其他容器挂载数据卷容器中的数据卷
docker run -d --volumes-from dataContainer --name data1 imagesID
docker run -d --volumes-from dataContainer --name data2 imagesID
如果删除了挂载的容器,数据卷并不会被自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时使用 docker rm -v
命令来指定同时删除关联的容器。
容器导入与导出
导出容器
如果要导出某个容器,可以使用docker export
命令
docker export -o demo.tar 容器ID
可以将容器导出为一个tar包
导入容器
可以使用docker import
从容器快照文件中在导入为镜像文件
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
Options:
- –change , -c Apply Dockerfile instruction to the created image
- –message , -m Set commit message for imported image
docker save和docker export区别
docker save和docker load一起用
docker export和docker import一起用
docker save images_name
:将一个镜像导出为文件,再使用docker load
命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export
命令导出的文件大。docker export container_id
:将一个容器导出为文件,再使用docker import
命令将容器导入成为一个新的镜像,但是相比docker save
命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。