1. 程式人生 > >Docker學習(五) Docker Compose Volumes

Docker學習(五) Docker Compose Volumes

volumes的作用有點類似於VMware裡面的共享目錄,用於將物理主機裡的目錄對映到docker虛擬機器裡。

通常用法

version: '2'

networks:
  thinking:
  
services:
  test_1.thinking.com:
    image: ubuntu
    ports:
      - "3333:3333"
    container_name: test_1.thinking.com
    command: /bin/bash
    volumes:
      - $PWD/:/test_pwd
    tty: true
    networks:
      - thinking

  test_2.thinking.com:
    image: ubuntu
    ports:
      - "4444:4444"
    container_name: test_2.thinking.com
    command: /bin/bash
    tty: true
    networks:
      - thinking

其中

    volumes:

      - $PWD/:/test_pwd

表示將物理機的當前目錄對映到docker虛擬機器/test_pwd裡面。

執行

$ docker-compose -f test_voloumes.yaml up -d
Creating network "desktop_thinking" with the default driver
Creating test_1.thinking.com ... done

Creating test_2.thinking.com ... done

$ docker exec -it test_1.thinking.com /bin/bash
[email protected]

:/# ls
bin   dev  home  lib64  mnt  proc  run   srv  test_pwd  usr

boot  etc  lib   media  opt  root  sbin  sys  tmp       var

[email protected]:/# ls /test_pwd/

docker-compose-test.yml  docker-compose.yml  test  test_voloumes.yaml

可以看到對映成功了。

特殊用法

在研究fabric專案的時候還發現有另外一種用法

version: '2'

volumes:
  test_1.thinking.com:
  test_2.thinking.com:

networks:
  thinking:
  
services:
  test_1.thinking.com:
    image: ubuntu
    ports:
      - "3333:3333"
    container_name: test_1.thinking.com
    command: /bin/bash
    volumes:
      - test_1.thinking.com:/test
      - $PWD/:/test_pwd
    tty: true
    networks:
      - thinking

  test_2.thinking.com:
    image: ubuntu
    ports:
      - "4444:4444"
    container_name: test_2.thinking.com
    command: /bin/bash
    tty: true
    networks:
      - thinking

試一下

$ docker-compose -f test_voloumes.yaml up -d
Creating volume "desktop_test_1.thinking.com" with default driver
Creating volume "desktop_test_2.thinking.com" with default driver
Recreating test_1.thinking.com ... 

Recreating test_1.thinking.com ... done

$ docker volume ls
DRIVER              VOLUME NAME
local               desktop_test_1.thinking.com

local               desktop_test_2.thinking.com

$ docker volume inspect desktop_test_1.thinking.com
[
    {
        "CreatedAt": "2018-06-06T02:37:41-07:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/desktop_test_1.thinking.com/_data",
        "Name": "desktop_test_1.thinking.com",
        "Options": null,
        "Scope": "local"
    }

]

這看起來意思是volume test_1.thinking.com對應的物理機是/var/lib/docker/volumes/desktop_test_1.thinking.com/_data,對映到docker虛擬機器裡面是/test,檢驗一下

$ docker exec -it test_1.thinking.com /bin/bash
[email protected]:/# ls
bin   dev  home  lib64  mnt  proc  run   srv  test      tmp  var
boot  etc  lib   media  opt  root  sbin  sys  test_pwd  usr

[email protected]:/# mkdir -p /test/fuck

到物理機裡面去看

$ ls /var/lib/docker/volumes/desktop_test_1.thinking.com/_data

ls: cannot access '/var/lib/docker/volumes/desktop_test_1.thinking.com/_data': Permission denied

$ sudo ls /var/lib/docker/volumes/desktop_test_1.thinking.com/_data

fuck

果然如此。

相關推薦

Docker學習 Docker Compose Volumes

volumes的作用有點類似於VMware裡面的共享目錄,用於將物理主機裡的目錄對映到docker虛擬機器裡。通常用法version: '2' networks: thinking: services: test_1.thinking.com: ima

docker學習—— docker容器網路

 ip netns管理網路名稱空間 檢視幫助: [[email protected] ~]# ip netns help Usage: ip netns list ip netns add NAME ip netns set

docker 學習 virtualBox虛擬機安裝docker

問題 spring servers rtu info fig 很多 配置 doc 這裏計劃用virtualBox虛擬機安裝兩個ubuntu servers, 然後用docker把spring boot項目部署上去,模擬一下分布式的微服務情況。 1:安裝virtualbox,

win10系統docker學習——docker安裝

tle png 問題: 方案 start htm 完成後 系統 mage windows系統中目前有兩種安裝docker的方式,分別為boot2docker和docker toolbox。按照官方說明和實際安裝過程來講,推薦使用docker toolbox方

Docker學習Docker Machine基本使用--命令集

1、參考命令幫助或官方文件 docker-machine help [COMMAND] https://docs.docker.com/machine/reference/ 2、version/help --檢視版本和幫助 create/rm --建立/刪除一個Doc

docker學習docker命令大全,歸納總結

容器生命週期管理run  docker run :建立一個新的容器並執行一個命令start/stop/restartdocker start :啟動一個或多少已經被停止的容器docker stop :停止一個執行中的容器docker restart :重啟容器kil

docker學習——docker基礎技術概念入門

容器:  container 容器是啥?https://zh.wikipedia.org/wiki/%E5%AE%B9%E5%99%A8 LXC:Linux Container 虛擬化的常用技術實現形式: 1.主機級虛擬化 Type

docker學習——docker的基本概念及基礎使用

一張圖概括整篇文章內容: 來自:https://medium.com/@nagarwal/lifecycle-of-docker-container-d2da9f85959 lxc->libcontainer->runC OCI(Open Container I

docker學習—— docker儲存卷

參考:https://www.imooc.com/article/26316 Docker映象由多個只讀層疊加而成,啟動容器時,Docker會載入只讀映象層並在映象棧頂部新增一個讀寫層 如果執行中的容器修改了一個現有的一個已存在的檔案,那該檔案將會從讀寫層下面的只讀層複製到讀寫層,該

docker學習—— docker映象概念,映象的基本操作

docker參考手冊:https://docs.docker.com/engine/reference/commandline/dockerd/ daemon.json參考:https://docs.docker.com/engine/reference/commandline/docker

docker 學習 docker部署靜態網站

span 生成 docs cnblogs containe run gen .cn amp 原文:docker 學習(九) docker部署靜態網站一: dockerfile, 把Dockerfile和myfolder放在一個目錄下: FROM httpd:2.4

Docker學習- Docker 安裝 Jenkins

## 一、拉取映象 我這裡安裝的版本是2.222.3-centos,可以去這裡獲取你需要的版本: https://hub.docker.com/_/jenkins?tab=tags ```shell docker pull jenkins/jenkins:2.222.3-centos ``` ## 二、建立本

Docker學習筆記-Docker Compose

背景 很多應用是很複雜的,需要多個容器共同支援,任何複雜的系統可能需要啟動的容器數量也很龐大,我們需要從Dockerfile build image或者docker hub拉取多個image,要建立並管理多個container,這個工作量是巨大的,docker

docker學習筆記——Docker常用命令總結

docker學習筆記 docker常用命令總結 1. 開啟/停止/重啟container(start/stop/restart)容器可以通過run新建一個來運行,也可以重新start已經停止的container,但start不能夠再指定容器啟動時運行的指令,因為docker只能有一個前臺進程。容器st

Docker | 學習系列 Docker容器常用命令

本節我們來討論Docker容器的常用命令。 新建並啟動容器[重要]使用以下docker run 命令即可新建並啟動一個容器。該命令是我們最常用的命令了,它有很多選項,下面筆者列舉一些常用的選項。① -d選項:表示後臺執行② -P選項:隨機埠對映③ -p選項:指定埠對映,有以下四種格式。ip:h

Docker基礎學習-Dockerfile命令詳解超全版本

製作Dockerfile為Docker入門學習的第一步(當然,除了環境搭建)。 本文收集、整理了官網關於製作Dockerfile的全部命令(除SHELL沒整理,這個就不弄了),可幫助大家快速進入Dockfile製作的學習。 以下為正文,下面進入學習姿勢吧!

Docker鏡像管理3之上傳鏡像

鏡像 push 阿裏雲 我這裏使用自行在阿裏雲註冊的雲服務(免費)首先創建命名空間創建倉庫選擇你所在的區域,這樣是為了速度更快、輸入倉庫名稱、摘要、倉庫類型如果只是自己用就選擇“私有”、如果不需要做自動部署可以選擇“本地部署”建立好之後查看,點擊管理;rexcheny是用戶名、mycentos6是

Win10下Docker學習1安裝

ner table 組成 高效率 down 提高 打開 cpu 其他人 Docker簡介 Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,

docker 學習2

ins -s line 分配 table date world color not found docker容器中安裝vim ubuntu 中默認未裝vim,docker run ubuntu vim 出現: container_linux.go:247: starting

Docker學習1安裝

www. ati https 機制 生產環境 開機啟動 works tab 流行 1. Docker簡介 Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全