docker使用
# 介绍Docker常见用法
docker默认需要root权限执行,因此下面的指令在Linux上运行时都要加上sudo,如果嫌麻烦,可以自行查找免root运行docker的方法
# 下载镜像
以安装mongodb为例
docker pull mongo:3.4
这个指令的意义是从Docker Hub上将mongo的3.4版本的镜像下载到本地,如果没有后缀的tag,默认下载latest版本也就是最新版。 如果要查找某一镜像,可以访问Docker Hub (opens new window) 搜索自己想要的镜像,或者使用
docker search <imagename>
上图是笔者搜索mongo得到的结果,可以看到搜索结果以星数排序,其中命名里没有"/"的是官方镜像,如果想了解详细的tag信息,需要访问dockerhub查找
上图是dockerhub上搜索mongo得到的一些tag结果,可以看到这些tag一般包含了应用软件的版本和镜像构建时使用的操作系统版本,比如mongo的官方镜像一般使用ubuntu或者windowsserver。(xenial和bionic是ubuntu版本的代号,指16.04和18.04两个版本)
# 本地存在的镜像
$ 列出本地存在的镜像
docker images
检索镜像时可以用镜像名+tag的方式(不加tag默认latest),也可以用IMAGE ID,IMAGE ID是唯一的,如果两个IMAGE有一样的ID,事实上这两个IMAGE是同一个,只是被人为起了两个名字。
$ 删除本地存在的镜像
docker image rm NAME[:TAG]
或
docker image rm [IMAGE ID] (ID只用输前几位,能保证将目标镜像识别出来即可)
$ 查看某个镜像的详细信息
docker inspect ...
$ 给某个镜像加tag
docker tag [原NAME:tag] [新NAME:tag]
这会让docker images列表内新增一个image,不过不会占用额外的存储空间,只是多了一个指向。
$ 导出一个镜像
docker save -o [文件名.tar] [NAME:tag]
$ 导入一个镜像
docker load -i [文件名.tar]
# 容器操作
下面的操作涉及容器名字的都可以用容器ID代替
# 新建并启动容器
docker run [NAME:tag]
一些常用的可选项
-d 后台守护态运行,一般都要这个选项
--name "..." 指定容器的别名
-p 宿主机端口:容器端口 如果想在宿主机之外或者用localhost直接访问容器,可以这样配置NAT
-v 宿主机地址:容器地址 为了方便备份和修改容器内的文件,用这种方法将容器内的目录映射到容器外,可以直接访问
如果想只新建不启动,可以查阅docker create用法
# 查看当前存在的容器
docker ps -a # -a代表查看所有,如果没有-a只查看运行中的容器
# 查看某容器的详细信息
docker inspect ID
# 容器的启动,停止、重启
docker start ID
docker stop ID
docker restart ID
# docker的容量检测和清理
由于docker的特性,他会很快占用很大磁盘空间,所以我们要定期对docker进行以下容量的检查和清理
docker system df # 查看docker存储使用情况
docker system df -v # 查询docker存储使用详情
一般一些数据服务将会有比较大的容量
df -h #查看磁盘整体占用情况
du -sh * #查看当前目录文件磁盘占用量
上次更新: 2022/05/20, 14:54:51