zoukankan      html  css  js  c++  java
  • docker

    基础使用

    参考链接:

    打包镜像至阿里云

    参考链接:

    有这么个需求,我想把一些工具打包至镜像中,不然每次用云主机的时候都得部署,太麻烦了。所以我下载了一个基础的 Ubuntu 镜像,里面放一点自己常用的工具。放上工具之后,我想将这个运行的容器打包成镜像,然后上传至阿里云镜像服务中,所以便有了这一节。

    首先将运行的容器暂停并打包成镜像。

    docker commit -a "ahtoh" -p -m "nothing v0.1" 容器名称或id 打包的镜像名称:标签
    

    选项说明:

    • -a:提交镜像的作者
    • -p:在commit时,将容器暂停
    • -m:提交时的文字说明

    在打包成镜像之后,接下来就是将镜像上传至阿里云镜像服务中。登录阿里云后,搜索容器,找到镜像服务,点击进入到容器镜像服务页面。

    实例列表中点击个人实例,进入到个人实例-概览页面。选择地域,这些东西一般是离你越近越好。然后选择镜像仓库,创建镜像仓库。在镜像仓库名称创建前,还要新建个命名空间。信息填写完成后,点击“下一步”,在代码源选项框中,选择本地仓库,点击创建镜像仓库

    创建完成后,会自动跳转到仓库基本信息页面,里面有操作指南,包括登录(密码是阿里云登录密码)、拉取和推送。

    打完收工!

    docker删除镜像

    删除镜像前需要先将依赖于该镜像的容器删掉,而如果要删掉该容器,则需要先将该容器停止。

    docker stop 容器id
    docker stop $(docker ps -a -q)   // 停止所有容器
    

    容器停止后进行删除。

    docker rm -f 容器id
    docker rm -f $(docker ps -a -q)  // 删除所有容器
    

    删除容器后,进行镜像删除。

    docker rmi 镜像id
    

    文件挂载

    参考链接:

    docker文件挂载有两个参数,一个是-v,一个是--mount。(xxx 是省略内容)

    docker run -xxx -v [宿主机绝对路径]:[容器内部绝对路径] xxxx
    docker run -xxx --mount type=bind,source=[宿主机绝对路径],target=[要挂载到容器内部的绝对路径],[readonly] xxxx
    

    --mountreadonly是可选项,加了代表该文件是只读权限,挂载到容器内部后,即使容器内部是root权限也无法修改该文件内容。

    从参考链接上看,docker没有提供给正在运行的容器挂载文件的选项。看文章貌似方式很多:

    1. 先把容器停掉,并将其commit 为一个新的 image,然后运行新的 image挂载
    2. sshfs

    目前我用的是第一种方法。

    本博客虽然很垃圾,但所有内容严禁转载
  • 相关阅读:
    python3 TypeError: a bytes-like object is required, not 'str'
    Centos 安装Python Scrapy PhantomJS
    Linux alias
    Vim vimrc配置
    Windows下 Python Selenium PhantomJS 抓取网页并截图
    Linux sort
    Linux RSync 搭建
    SSH隧道 访问内网机
    笔记《鸟哥的Linux私房菜》7 Linux档案与目录管理
    Tornado 错误 "Global name 'memoryview' is not defined"
  • 原文地址:https://www.cnblogs.com/ahtoh/p/15670601.html
Copyright © 2011-2022 走看看