docker常用命令(三)
帮助启动类命令
启动
docker:systemctl start docker
停止
docker:systemctl stop docker
重启
docker:systemctl restart docker
查看docker'状态
systemctl status docker
开机启动
systemctl enable docker
查看docker概要信息
docker info
查看docker.总体帮助文档
docker-help
查看dockert命令帮助文档
docker 具体命令-help
镜像相关命令
查看本机可运行镜像
各个选项说明:
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签I
IMAGE ID:镜像ID
CREATED:镜像创建时间
SZE:镜像大小
同一仓库源可以有多个TAG版本,代表这个仓库源的不同个版本,我们使用REPOSITORY:TAG来定义不同的镜像。
如果你不指定一个镜像的版本标签,例如你只使用ubuntu,docker将默认使用ubuntu:latest镜像
从仓库搜索镜像
各个选项说明
NAME(镜像名称) DESCRIPTION(镜像说明) STARS(点赞数量) OFFICIAL(是否是官方的) AUTOMATED(是否是自动构建的)
下载镜像
docker pull 镜像名字[:TAG]//下载指定版本 如 docker pull redis:6.0.8 docker pull 镜像名字 //下载lastet 下载最新 TAG是latest
查看镜像、容器、数据卷占用空间
删除指定镜像
有时docker可能会虚悬镜像 指:出现镜像 名字和id都是 none的 可以直接删除
docker rmi [IMAGE ID] //如果在使用中不能删除 可以通过以下命令强删 docker rmi -f [IMAGE ID] //强制删除 docker rmi [IMAGE ID1] [IMAGE ID2]//批量删除 docker rmi -f ${docker images -qa} //可以理解为mysql 的delete where in(select id from table)
根据容器副本生成新镜像
提交容器副本使之成为一个新的镜像,执行后就可以通过docker images 看到新生成的镜像
场景:在某些镜像创建的容器 新增一些新的自定义扩展 再将容器打包成镜像 实现了镜像继承,具体看docker镜像原理
docker commit -m="[提交的描述信息]" -a="[作者]" [需要打包成容器id]:[标签名]
docker镜像发布到阿里云仓库
![](https://img2022.cnblogs.com/blog/779774/202211/779774-20221105155742675-1751870124.png)
1.登录阿里云https://promotion.aliyun.com/ntms/act/kubernetes.html
2.
3.
4.
5.
6..创建仓库 仓库和应用是一对一的 比如redis 仓库名字应该叫redis
7.
8.按照步骤
docker镜像发布到私有仓库
1.下载镜像仓库
docker pull registry
2.启动
默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便于宿主机联调
docker run -d -p 5000:5000 -v /Users/liqiang/Desktop/javaEnvironmenta/dockerdemo/dockerRegistry:/tmp/registry --privileged=true registry #5000:5000左边是主机端口 右边是容器端口
3.curl查看私服仓库有哪些镜像
curl-XGET http://192.168.111.162:5000/v2/_catal0g
5.默认docker不支持http协议,修改配置文件使之支持http
vim /etc/docker/daemon.json
加上insecure=registries 并重启docke
6.通过docker push推送
docker push 192.168.111.162:5000/zyyubuntu:1.2
7.验证是否推成功
curl-XGET http://192.168.111.162:5000/v2/_catal0g
8.拉取使用
docker pull 192.168.111.162:5000/zyyubuntu:1.2
容器命令
启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run -d [容器名] #后台守护式容器
注意:
OPTIONS说明(常用):有些是一个减号,有些是两个减号
--name="容器新名字” 为容器指定一个名称;
-d:后台运行容器并返回容器D,也即启动守护式容器(后台运行);
-i:以交互模式运行容器,通常与t同时使用;
-t:为容器重新分配一个伪输入终端,通常与ⅰ同时使用;
也即启动交互式容器(前台有伪终端,等待交互); 如 docker run -it [IMAGE ID] 交互式容器 比如我们docker安装 启动linux 镜像启动
下面/bin/bash 是执行此shell命令后再发挥一个交互式终端
![](https://img2022.cnblogs.com/blog/779774/202211/779774-20221105160528660-1890427426.png)
-P:随机端口映射,大写P (端口映射 指的是 容器对外暴露端口 与 容器内应用的端口映射)
![](https://img2022.cnblogs.com/blog/779774/202211/779774-20221105160548058-600932440.png)
查看容器列表
docker ps 列出运行中的容器 docker ps -a 当前运行中和历史上运行过的 docker ps -l 最近创建的容器 docker ps -n 线上最近的n个 docker ps -q 寂寞模式只显示容器编号
列出现在所有运行中的容器
退出容器
exit #如果是run 进去通过exit会退出并关闭容器
ctrl+p+q #run进去不会关闭容器
启动已经停止的容器
docker start [容器id或者容器名字]
重启容器
docker restart [容器id或者容器名字]
停止容器
docker stop [容器id或者容器名字]
强制停止容器
docker kill [容器id或者容器名字]
删除容器
docker rm [容器id或者容器名字] #只能删除停止的 docker rm -f [容器id或者容器名字 #强删 docker rm -f $(docker ps -a -q) #组合命令 删除运行中的 docker ps -a -q |xargs docker rm #xargs linux 执行前面的结果 交给docker rm执行
查看容器日志
docker logs [容器id]
查看容器内运行的进程
每个容器可以理解成一个简易版的linux所以可以通过
docker top [容器id]
查看容器内部细节
可以把容器看做是一个简易版的linux环境,只加载镜像所需环境其余不加载如:root用户权限、进程空间、用户空间、网格空间等
docker inspect [容器id] #可以看到容器的镜像和网络配置相关
进入容器
docker exec -it [容器id] /bin/bash #是在容器中打开新的终端,并可以启动新的进程,用exit退出不会导致容器停止 推荐使用这种
docker attach [容器id] #重新进入 直接进入容器启动命令终端 不会启动新的进程 通过exit退出会导致容器停止
从容器拷贝文件到主机
场景:容器铭感文件备份到主机
docker cp [容器id]:[容器路径] [主机路径]
导入导出
场景:容器备份
docker export [容器id] ->abcd.tar #导出 整个容器备份 cat abcd.tar | docker import - [镜像用户]/[镜像名字]:[镜像版本号] #tar导入生成容器
根据镜像启动容器
2种启动形式
前台交互式启动
docker run -it [镜像id] #如果ctrl +C 就会自动退出
后台守护式启动
docker run -d [镜像id] #
监控命令
docker stats
缺点 试试实时的没有预警和历史记录
可以通过CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表 替代