docker基础命令
一、镜像操作
1、搜索镜像:
docker search 关键字
例如:搜索关键字为mysql的镜像
2、拉取镜像:
docker pull 镜像名称:镜像版本号
-
docker pull redis #默认下载最新版本
-
docker pull redis:5.0 #下载指定版本
3、查看所有镜像
docker images [选项]
选项
|
说明
|
-a
|
列出所有镜像
|
-q
|
只显示镜像ID
|
4、根据镜像ID号获取镜像详细信息
docker inspect 镜像ID
5、为本地镜像添加新的标签
docker tag 名称:标签 新名称:标签
docker tag命名相当于创建了一个硬链接
6、删除镜像
(1)docker rmi 镜像ID
(2)docker rmi 仓库名称:标签
7、存出镜像与存入镜像
(1)存出镜像(打包tar)
docker save -o 存储的文件名 存储的镜像
-
存储的文件名:保存到本地的文件名称
-
存储的镜像:需要存出到本地的镜像名称
(2)导入镜像(加载镜像)
导入使用
docker save
命令导出的镜像。
docker load -i xxx.tar
-
--input , -i : 指定导入的文件,代替 STDIN。
-
--quiet , -q : 精简输出信息。
二、容器操作
1、容器创建
docker create [选项] 镜像 运行的程序
常用选项
|
说明
|
-i
|
让容器的输入保持打开
|
-t
|
让docker分配一个伪终端
|
示例:创建一个nginx容器,运行程序为/bin/bash
2、容器启动
docker start 容器的ID
3、创建并启动容器
docker run [选项] -- name=doker_run 镜像名称:版本 /bin/bash
示例:启动zjfz镜像,指定端口号为8081(两个端口号都可以改为映射的端口号)
docker run -p 8081:8081 zjfz:latest
容器后台运行:
docker run -itd -p 8081:8081 zjfz:latest
name:指定容器名称,可以不填(随机),建议根据具体使用功能命名,便于管理
镜像名称:版本:告诉我们使用什么镜像来启动容器
/bin/bash:告诉docker要在容器里面执行此命令
选项
|
说明
|
-d
|
后台运行容器并返回容器ID,即守护式容器
|
-i
|
以交互模式运行容器,通常与-t同时使用
|
-t
|
为容器重新分配一个伪输入终端
|
-- name
|
容器名称
|
-P(大写)
|
随机端口映射,容器内部端口随机映射到主机的端口
|
-p(小写)
|
指定端口映射,格式:主机(宿主)端口:容器端口
|
--volume,-v
|
绑定一个卷
|
-it
|
交互式容器
exit退出容器,容器立马自动关闭
|
-id
|
守护式容器,
以守护(后台)模式启动容器,不会进入容器
|
示例:
使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data
备注:docker run 包含docker create 和docker start两条命令的职能。
当利用docker run创建容器时,docker在后台标准运行过程是:检查本地是否存在指定的镜像,存在,直接加载;不存在,从公共仓库下载
4、查看当前运行状态的容器(当前为UP状态)
docker ps
选项
|
说明
|
-a
|
显示所有的容器,包括正在运行和停止的容器
|
-q/不加参数
|
只显示运行状态的容器ID
|
-aq
|
显示所有的容器,包括未运行的,只显示他们的容器ID
|
-s
|
显示容器的大小(size)
|
5、容器终止
docker stop 容器ID
docker stop 名称
docker start 容器ID
docker start 名称
docker restart 容器ID
docker restart 名称
6、容器进入
docker exec [选项] 容器ID/容器名称
示例:docker exec -it nginx /bin/bash
选项
|
说明
|
-i
|
容器输入保持打开
|
-t
|
让docker分配一个伪终端
|
-c
|
免交互直接在容器内执行命令
|
使用 docker exec方式进入容器,前提是容器必须是开启状态
7、容器的导出
docker export [选项] container
选项
|
说明
|
-o
|
-
o表示输出的文件,这里指定了输出的路径,如果没有指定路径,则默认生成到当前文件夹。
|
示例1:
docker export -o redis.tar.gz redis
或
docker export redis > redis1.tar.gz
说明:将运行中的redis容器导出为redis.tar.gz包
8、容器的导入
从tar包导入内容为docker镜像
cat 文件名 | docker improt - 生成的镜像名称:标签
docker import [选项] file|URL| - [REPOSITORY[:TAG]]
选项
|
说明
|
-c
|
应用docker 指令创建镜像;
|
-m
|
提交时的说明文字
|
示例1:
docker import redis.tar.gz redis:v1
示例2:docker import https://example.com/example image.tgz
9、容器的删除
docker rm 容器ID/容器名称 ----->可以删除一个静止的容器
docker rm -f 容器ID/容器名称 ----->可以删除一个正在运行的容器
10、查看容器版本
docker version
11、
检查当前容器的安装情况(包括镜像数、容器书、多少个物理机节点)
docker info
12、容器提交为镜像
docker commit [选项] [容器id或容器名] [仓库名:标签]
选项
|
说明
|
-a
|
修改人
|
-m
|
备注
|
-c
|
使用dockerfile指令来创建镜像
|
-p
|
在commit,将容器暂停
|
例如:将容器ID为9ca35195df5a,保存为新的镜像,并添加提交人的说明信息。
13、查看网络列表
docker network ls
14、
暂停容器中的所有进程
docker pause
15、
查看容器中运行的进程信息
docker top
16、
显示容器资源的使用情况,包括:CPU、内存、网络 I/O 等
docker stats