docker基本使用
本文最后更新于:2022-10-20 20:44
基础使用
参考链接:
打包镜像至阿里云
参考链接:
有这么个需求,我想把一些工具打包至镜像中,不然每次用云主机的时候都得部署,太麻烦了。所以我下载了一个基础的 Ubuntu 镜像,里面放一点自己常用的工具。放上工具之后,我想将这个运行的容器打包成镜像,然后上传至阿里云镜像服务中,所以便有了这一节。
首先将运行的容器暂停并打包成镜像。
1 |
|
选项说明:
- -a:提交镜像的作者
- -p:在commit时,将容器暂停
- -m:提交时的文字说明
在打包成镜像之后,接下来就是将镜像上传至阿里云镜像服务中。登录阿里云后,搜索容器
,找到镜像服务,点击进入到容器镜像服务
页面。
在实例列表
中点击个人实例
,进入到个人实例-概览
页面。选择地域
,这些东西一般是离你越近越好。然后选择镜像仓库
,创建镜像仓库。在镜像仓库名称创建前,还要新建个命名空间
。信息填写完成后,点击“下一步”,在代码源
选项框中,选择本地仓库
,点击创建镜像仓库
。
创建完成后,会自动跳转到仓库基本信息
页面,里面有操作指南,包括登录(密码是阿里云登录密码)、拉取和推送。
打完收工!
docker删除镜像
删除镜像前需要先将依赖于该镜像的容器删掉,而如果要删掉该容器,则需要先将该容器停止。
1 |
|
容器停止后进行删除。
1 |
|
删除容器后,进行镜像删除。
1 |
|
文件挂载
参考链接:
docker文件挂载有两个参数,一个是-v
,一个是--mount
。(xxx 是省略内容)
1 |
|
--mount
的readonly
是可选项,加了代表该文件是只读权限,挂载到容器内部后,即使容器内部是root
权限也无法修改该文件内容。
从参考链接上看,docker没有提供给正在运行的容器挂载文件的选项。看文章貌似方式很多:
- 先把容器停掉,并将其commit 为一个新的 image,然后运行新的 image挂载
- sshfs
目前我用的是第一种方法。
错误处理
OCI runtime create failed
参考链接:
报错错误:
1 |
|
这个错误是在复现docker脏牛漏洞逃逸时,执行docker-compose run dirtycow /bin/bash
命令时候爆的错误。
报错原因:docker版本过高,内核版本过低造成。
解决办法:降低docker的版本或升级内核版本。
卸载docker
参考链接:
安装docker-compose
1 |
|
也可以使用pip
安装。