目录
相关阅读
前言
本文主要介绍了Docker数据卷的使用以及简单的dockerfile命令操作,并对dockerfile里面的CMD和ENTRYPOINT指令做了对比实验。
容器数据卷
使用容器数据卷
一句话:容器的持久化和同步操作!容器间也是可以共享的。
挂载
docker run -v host目录:容器目录 容器id
root@10:~# docker run -it --name="debian02" -v /home/ceshi:/home/ debian
root@839ad96507fd:/# cd /home/
root@839ad96507fd:/home# ls
root@839ad96507fd:/home# touch ceshi.sh
root@839ad96507fd:/home# exit
exit
root@10:~# cd /home/
root@10:/home# ls
ceshi kate test.java
root@10:/home# cd ceshi/
root@10:/home/ceshi# ls
ceshi.sh
root@10:/home/ceshi#
查询
docker inspect 容器id
:查看挂载情况
root@10:/home/ceshi# docker inspect 839ad96507fd
[
{
...
"Mounts": [
{
"Type": "bind",
"Source": "/home/ceshi",
"Destination": "/home",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
优点:使用容器数据卷的话,就可以直接在本地做测试,而不用每一次都进入容器当中去。
具名和匿名挂载
docker run -v 容器路径 容器id
: 匿名挂载
docker run -v 卷名:容器路径 容器id
:具名挂载
docker volume --help
查看卷帮助信息
查看本地容器卷,发现是匿名的:
root@10:~# docker volume --help
Usage: docker volume COMMAND
Manage volumes
Commands:
create Create a volume
inspect Display detailed information on one or more volumes
ls List volumes
prune Remove all unused local volumes
rm Remove one or more volumes
Run 'docker volume COMMAND --help' for more information on a command.
root@10:~# docker volume ls
DRIVER VOLUME NAME
local bf1f729354c3e2522c33014fe831caf079f12888bca5d83382e70ce8188ebf04
启动镜像nginx为容器nginx02,命名容器卷为juming-nginx(-P是随机指定端口),用
docker volume ls
可以查看到卷的名字,使用docker volume iinspect 卷名
可以查看具体的卷的相关信息,发现卷在/var/lib/docker/volumes/
下。事实上,docker所有的数据都保存在/var/lib/docker/
下,卷都保存在其下的/var/lib/docker/volumes/
目录下。
root@10:~# docker run -P -d -v juming-nginx:/ect/nginx --name nginx02 nginx
e89a08353b7571c20a06d1baa70f94884014ab2704186858c7b503c40e4fc3c6
root@10:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e89a08353b75 nginx "/docker-entrypoint.…" 5 seconds ago Up 3 seconds 0.0.0.0:32768->80/tcp nginx02
8f557fe4d5d4 portainer/portainer "/portainer" 2 hours ago Up 2 hours 0.0.0.0:8080->9000/tcp prtainer01
bdd701179836 nginx "/docker-entrypoint.…" 5 hours ago Up 5 hours 0.0.0.0:2233->80/tcp nginx01
root@10:~# docker volume ls
DRIVER VOLUME NAME
local bf1f729354c3e2522c33014fe831caf079f12888bca5d83382e70ce8188ebf04
local juming-nginx
root@10:~# docker volume inspect juming-nginx
[
{
"CreatedAt": "2020-08-27T19:49:36+08:00",
"Driver"