一、Docker镜像操作
1、搜索镜像:docker search 关键字
例如:搜索关键字为lamp的镜像
2、拉取镜像:docker pull 镜像名称[:tag(标签)]
ps:(加标签和不加标签的区别)①、docker pull redis # 默认下载最新版本
②、docker pull redis:5.0 # 下载指定版本
3、 查看所有镜像:docker images [选项]
选项说明-a列出所有镜像-q只显示镜像ID
4、根据镜像ID号获取镜像详细信息:docker inspect 镜像ID
5、为本地镜像添加新的标签:docker tag 名称 :[标签] 新名称:[新标签]
6、 删除镜像:docker rmi 仓库名称:标签 或者 docker rmi 镜像ID
PS:当删除的镜像有标签时,当删除其中之一,并不影响镜像文件,但只剩最后一个镜像的话请慎删,会彻底删除
7、存出镜像和存入镜像
7.1、存出镜像 docker save -o 存贮的文件名 存储的镜像
需要把镜像保存成本地文件,这一过程叫做存出镜像
7.2、导入镜像 docker load < 存出的文件
把上面存出的文件导入到镜像库中,这一过程叫导入
8、上传镜像 docker push 仓库名称:标签
9、删除本地所有镜像 docker rmi docker images -q
二、容器操作
1、容器的创建与启动
1.1、容器的创建: docker creat [选项] 镜像 运行的程序
常用选项说明-i让容器的输入保持打开-t让docker分配一个伪终端
例如:创建一个容器nginx
1.2、容器的启动:docker start 容器的ID
1.3、创建并启动容器:docker run [选项] 镜像名 /bin/bash
选项说明-d后台运行容器并返回容器ID,即守护式容器-i以交互模式运行容器,通常与-t同时使用-t 为容器重新分配一个伪输入终端-- name容器名字-P(大写)随机端口映射,容器内部端口随机映射到主机的端口-p(小写)指定端口映射,格式:主机(宿主)端口:容器端口--volume,-v绑定一个卷
例如1:使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx
例如2: 使用镜像nginx:nginx以后台模式启动一个容器,并将容器的80端口映射到主机随机端口
例如3: 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data
当利用docker run 来创建容器时,docker在后台标准运行过程是这样的:
检查本地是否存在指定的镜像,当镜像不存在时,会从公共仓库下载;如过本地有,直接加载。
ps: docker run [参数] /bin/bash
docker run 包含docker creat和docker start 两条命令的职能
-i:保持容器运行。通常与-t同时使用,加入-it这两个参数之后,容器创建后自动进入容器中,退出容器后,容器自动关闭
-t:为容器分配一个伪终端,通常与-i同时使用
-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec进入容器。退出后,容器不会关闭
-it 创建的容器一般称为交互式容器(特点: exit退出容器, 容器立马自动关闭)
-id创建的容器一般称为守护式容器(特点: 以守护(后台)模式启动容器, 不会进入容器)
2、查看当前运行状态的容器(当前为UP状态) docker ps
选项说明-a 显示所有的容器,包括未运行的-q只显示运行状态的容器ID号-aq显示所有的容器,包括未运行的,只显示他们的容器ID号-s显示容器的大小(size)
3、查看所有容器的包括正在运行和停止运行的容器 docker ps -a
4、终止容器运行:docker stop/start/restart 容器ID/名称
5、容器的进入 docker exec [选项] 容器ID/名称
-i :表示让容器的输入保持打开,
-t:表示让docker分配一个伪终端
-c:免交互直接在容器内执行命令
使用 docker exec方式进入容器,前提是容器必须是开启状态
6、容器的导出 :docker export 容器ID/名称 > 文件名
用户可以讲任何一台容器从一台机器迁移到另一台机器上:
将创建好的容器——>导出为文件;文件——>导入到其他机器再做处理
7、 容器的导入:cat 文件名 | docker improt -生成的镜像名称:标签
8、 删除容器: docker rm 容器ID/名称
PS : docker rm 容器ID/名称——》可以删除一个禁止的容器
docker rm -f 容器ID/名称——》可以删除一个正在运行的容器
9、查看版本:docker version
[root@zwb_docker ~]# docker version
Client: Docker Engine - Community
Version: 20.10.18
API version: 1.41
Go version: go1.18.6
Git commit: b40c2f6
Built: Thu Sep 8 23:14:08 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.18
API version: 1.41 (minimum version 1.12)
Go version: go1.18.6
Git commit: e42327a
Built: Thu Sep 8 23:12:21 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.8
GitCommit: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
主要分为client端和server端:client端指的是命令行;server端指的是内核
10、检查当前容器的安装情况(包括镜像数、容器书、多少个物理机节点): docker info
11、容器提交为镜像:docker commit [选项] [容器ID/容器名] [仓库名:标签]
语法格式:
docker commit [选项] [容器ID或容器名] [仓库名:标签]
选项说明-a修改人-m备注-c使用dockerfile指令来创建镜像-p在commit时,将容器暂停
例如:将容器ID为9ca35195df5a,保存为新的镜像,并添加提交人的说明信息。
12、查看网络列表:docker network ls
13、自建bridge网络 :docker network creat
14、复制:docker cp
14.1、把容器内的文件复制到物理机
语法格式:docker cp 容器ID:绝对路径 (物理机)绝对路径
14.2、把物理机的文件复制到容器中
语法格式:docker cp (物理机)绝对路径 容器ID:绝对路径
15、暂停容器中的所有进程:docker pause
16、查看容器中运行的进程信息: docker top
17、显示容器资源的使用情况,包括:CPU、内存、网络 I/O 等
docker stats
版权归原作者 忙碌滴比特流 所有, 如有侵权,请联系我们删除。