graph driver-device mapper-02driver基本操作

來源:互聯網
上載者:User

標籤:devicemapper   docker   

//清除thin pool1.1 func (d *Driver) Cleanup() error {// 停止thin poolerr := d.DeviceSet.Shutdown()return err}//當載入新鏡像時,添加一個新thin device//id為containerid或imageid1.2 func (d *Driver) Create(id, parent string) error {if err := d.DeviceSet.AddDevice(id, parent); err != nil {return err}return nil}//刪除thin device1.3 func (d *Driver) Remove(id string) error {//檢查thin device是否存在if !d.DeviceSet.HasDevice(id) {return nil}//通過id從thin pool中刪除裝置if err := d.DeviceSet.DeleteDevice(id); err != nil {return err}//mp為/var/lib/docker/devicemapper/mnt/$idmp := path.Join(d.home, "mnt", id)//刪除目錄下所有的檔案if err := os.RemoveAll(mp); err != nil && !os.IsNotExist(err) {return err}return nil}//掛載thin device到/var/lib/docker/devicemapper/mnt/$id目錄下1.4 func (d *Driver) Get(id, mountLabel string) (string, error) {//mp=/var/lib/docker/devicemapper/mnt/$idmp := path.Join(d.home, "mnt", id)//建立目錄/var/lib/docker/devicemapper/mnt/$idif err := os.MkdirAll(mp, 0755); err != nil && !os.IsExist(err) {return "", err}//掛載thin device到/var/lib/docker/devicemapper/mnt/$idif err := d.DeviceSet.MountDevice(id, mp, mountLabel); err != nil {return "", err}//建立rootfs到/var/lib/docker/devicemapper/mnt/$id/rootfsrootFs := path.Join(mp, "rootfs")if err := os.MkdirAll(rootFs, 0755); err != nil && !os.IsExist(err) {d.DeviceSet.UnmountDevice(id)return "", err}//建立ididFile := path.Join(mp, "id")if _, err := os.Stat(idFile); err != nil && os.IsNotExist(err) {if err := ioutil.WriteFile(idFile, []byte(id), 0600); err != nil {d.DeviceSet.UnmountDevice(id)return "", err}}//返回/var/lib/docker/devicemapper/mnt/$id/rootfs目錄return rootFs, nil}//從/var/lib/docker/devicemapper/mnt/$id下解掛裝置1.5 func (d *Driver) Put(id string) {if err := d.DeviceSet.UnmountDevice(id); err != nil {utils.Errorf("Warning: error unmounting device %s: %s\n", id, err)}}//判斷$id所對應的裝置是否存在1.6 func (d *Driver) Exists(id string) bool {return d.DeviceSet.HasDevice(id)}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.