Docker基本命令(二)之 容器卷使用、DockerFile

目录

  • 相关阅读
  • 前言
  • 容器数据卷
    • 使用容器数据卷
      • 挂载
      • 查询
      • 具名和匿名挂载
      • 权限
      • 使用Dockerfile实现挂载
    • 实战:mysql挂载容器卷
    • 实战:mysql容器间共享数据
  • DockerFile
    • DockerFile介绍
    • DockerFile的指令
      • 常见指令概述
      • CMD和ENTRYPOINT的差别

相关阅读

  • Docker基本命令(一) 之 帮助命令、镜像操作、容器操作、可视化工具portainer
  • Docker基本命令(二)之容器卷、DockerFile

前言

本文主要介绍了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",
        "D

你可能感兴趣的:(Docker,Linux,docker,linux,debian,服务器)