Docker 命令总结
时间:2022-07-22
本文章向大家介绍Docker 命令总结,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、Docker的基础命令
[root@node02 ~]# docker volume prune -f #删除无主的数据卷
#在运行容器时,-v挂载目录时没有指定本地要挂载的目录,而是由docker管理的,
#当容器删除后,这些目录并不会被删除,此时这种目录就是无主数据卷。
#若要在删除容器时,同时删除这些数据卷,可以使用以下命令(添加“-v”选项即可):
[root@node02 ~]# docker rm -f -v 8086 #其中8086为容器ID
[root@master volumes]# docker container prune -f #清理掉所有处于终止状态的容器。
[root@localhost ~]# docker search dhcp #以DHCP作为关键字进行搜索镜像
[root@localhost ~]# docker pull docker.io/networkboot/dhcpd #下载查询出来的某个镜像
[root@localhost ~]# docker images #查询下载的镜像
[root@localhost ~]# docker tag docker.io/networkboot/dhcpd dchp:dhcp #改新名称及标签
[root@localhost ~]# docker rmi docker.io/networkboot/dhcpd #删除镜像
[root@localhost ~]# docker save -o dhcptest dchp:dhcp #导出为本地镜像
[root@localhost ~]# docker load --input dhcp #导入镜像
#或者
[root@localhost ~]# docker load < dhcp #导入镜像
[root@docker ~]# docker save > dhcp busybox:latest #导出镜像busybox
[root@localhost ~]# docker push docker.io/ljztest/dhcp #上传镜像
[root@localhost ~]# docker create -itd dchp:dhcp /bin/bash #创建一个容器,并指定伪终端
#选项解释如下:
* -i:交互式
* -t:分配一个为终端
* -d:后台运行
[root@docker ~]# docker run -itd --name test2 --restart=always httpd #保持容器处于开机自启状态
#作用是可以在执行“systemctl restart docker”时,使容器也随之重启;
#若不加--restart,那么一旦执行“systemctl restart docker”,这个容器将会停止。
[root@localhost ~]# docker ps -a #查出容器的ID号
[root@localhost ~]# docker exec -it 2304f92a8158 /bin/bash #进入一个容器
[root@docker ~]# docker attach test1 #也是进入一个容器
#如果是attach进入容器,使用exit退出的话这个容器也会关闭。
#使用ctrl+p ctrl+q退出容器,并不会关闭这个容器,会保持容器的运行状态。
[root@docker ~]# docker ps -a -q | xargs docker start #开启所有容器
[root@docker ~]# docker ps -a -q | xargs docker stop #关闭所有容器
[root@docker ~]# docker logs test1 #查看容器的日志,可以在后面加“-f”选项,动态输出
[root@docker ~]# docker ps -a -q | xargs docker rm -f #删除所有容器,威力不亚于rm -rf /*
[root@localhost ~]# docker ps -a -q | xargs docker start #启动所有容器
[root@localhost ~]# docker rm 2304f92a8158 #删除容器
[root@docker ~]# docker run -it --name containerB -c 512 centos
#创建一个名为containerB的容器,设置其CPU的权重为512
[root@docker ~]# docker run -it --name testA --device-write-bps /dev/sda:30MB centos
#限制磁盘的每秒可以写入的大小为30MB
#其中还可以有以下选项:
#--device-read-bps:设置读设备的bps
#--device-write-bps:设置写入设备的bps
#--device-read-iops:设置读取设备的iops
#--device-write-iops:设置写入设备的iops。
[root@docker lv]# docker history test04:latest #如果使用Dockerfile制作镜像,可以使用这条命令查看这个镜像都做过什么
[root@docker ~]# docker logs web01 #查看容器的日志,可以加“-f”选项,动态刷新。
[root@docker ~]# docker commit web01 mytest:v1.0 #将容器制作为镜像
[root@docker ~]# docker cp /a.txt web01:/usr #将本机的文件复制到容器中
[root@docker ~]# docker cp web01:/usr/a.txt /usr #将容器中的文件复制到本机中
二、docker网络管理相关的命令:
[root@docker ~]# docker network ls #查看docker的网络
[root@docker ~]# brctl show #专用于查看虚拟网络
[root@docker ~]# docker exec web ip a #查看某个指定容器的网络信息
[root@docker ~]# docker network create -d bridge my_net #创建一个docker的网络,-d:指定驱动类型
[root@docker ~]# docker network create -d bridge --subnet 172.22.0.0/24 my_net2 #创建网络时,指定网段
[root@docker ~]# docker network inspect my_net2 #查看这个网络的详细信息
[root@docker ~]# docker inspect web05 #查看容器的详细信息
[root@docker ~]# docker inspect web05 #查看容器的详细信息
[root@docker ~]# docker run -tid --name web07 --network my_net2 --ip 172.22.0.8 busybox #启动容器时,一并指定IP地址。
[root@docker ~]# docker exec web03 ping 172.17.0.3 #不进入虚拟机执行ping命令。
[root@docker ~]# iptables-save #查看iptables规则
[root@docker ~]# docker network connect my_net web001
#将web001连接至my_net网络,执行后web001将会多出一块网卡,并具有my_net网络的IP地址。
三、docker Swarm群集常用命令
[root@docker01 ~]# docker node ls #查看群集的信息(只可以在manager角色的主机上查看)
[root@docker01 ~]# docker swarm join-token worker #如果后期需要加入worker端,可以执行此命令查看令牌(也就是加入时需要执行的命令)
[root@docker01 ~]# docker swarm join-token manager #同上,若要加入manager端,则可以执行这条命令查看令牌。
[root@docker01 ~]# docker service scale web05=6 #容器的动态扩容及缩容
[root@docker01 ~]# docker service ps web01 #查看创建的容器运行在哪些节点
[root@docker01 ~]# docker service ls #查看创建的服务
#将docker03脱离这个群集
[root@docker03 ~]# docker swarm leave #docker03脱离这个群集
[root@docker01 ~]# docker node rm docker03 #然后在manager角色的服务器上移除docker03
[root@docker01 ~]# docker node promote docker02 #将docker02从worker升级为manager。
#升级后docker02状态会为Reachable
[root@docker01 ~]# docker node update --availability drain docker01
#设置主机docker01以后不运行容器,但已经运行的容器并不会停止
- Framework 4.0 新关键字dynamic 之我见(一)
- Timber 经典的android Log封装库
- Butter Knife快速开发
- 如何将Markdown文章轻松地搬运到微信公众号并完美地呈现代码内容
- IoC与AOP的那点事儿
- ossec入侵检测日志行为分析
- 从零开始的Spring Session(三)
- 从零开始的Spring Session(一)
- 一个通用的Java正则匹配工具
- 从零开始的Spring Session(二)
- [汇总]2013年度全球重、特大网络安全事件回顾
- android常用接口(一)
- 2014密码时代已死?六种旨在取代传统密码位置的新奇想法
- 程序员你为什么这么累【续】:编码习惯之配置规范
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- keras读取训练好的模型参数并把参数赋值给其它模型详解
- python 删除excel表格重复行,数据预处理操作
- 终于搞懂了Keras中multiloss的对应关系介绍
- python else语句在循环中的运用详解
- python文件编写好后如何实践
- keras 指定程序在某块卡上训练实例
- Python3 requests模块如何模仿浏览器及代理
- PHP中的empty、isset、isnull的区别与使用实例
- Laravel学习笔记之Artisan命令生成自定义模板的方法
- php微信扫码支付 php公众号支付
- PHP析构函数destruct与垃圾回收机制的讲解
- 关于php unset对json_encode的影响详解
- python实现二分类和多分类的ROC曲线教程
- PHP随机数函数rand()与mt_rand()的讲解
- PHP实现小程序批量通知推送