Docker 常用命令
admin
2023-01-24 18:00:58
0

一、Docker镜像操作基础命令

[root@localhost ~]# docker search 镜像名称 //搜索镜像(在docker hub官网上进行查找)
[root@localhost ~]# docker pull 镜像名称 //下载镜像(如果不指定镜像标签默认下载最新版的镜像)
[root@localhost ~]# docker push 仓库名称/仓库账号/镜像名称 //上传镜像
[root@localhost ~]# docker images //查询本地下载的所有镜像
[root@localhost ~]# docker images 镜像名称 //查询指定的镜像
[root@localhost ~]# docker inspect 容器名称或容器ID //查询镜像的详细信息
[root@localhost ~]# docker tag 原本的镜像名称及标签 生成以后的镜像名称及标签 //为本地镜像起一个新的名称、标签(源镜像还存在)
[root@localhost ~]# docker rmi 镜像名或镜像ID //删除本地镜像
[root@localhost ~]# docker rmi 镜像名或镜像ID //强制删除本地镜像
//注意:强制的这种方式适用于有容器正在使用这个镜像
//这种方式容器如果在运行时也是无法删除的,容器停止后删除的话,容器依然可以使用
[root@localhost ~]# docker save > 通过镜像生成的文件 镜像名称
[root@localhost ~]# docker save -o 通过镜像生成的文件 镜像名称 //通过镜像生成新的镜像文件
[root@localhost ~]# docker load < 镜像文件
[root@localhost ~]# docker load --i 镜像文件 //将本地的镜像文件生成为镜像
//建议:“>”和“<”号成对使用、“i”和“o”成对使用
[root@localhost ~]# docker history 镜像名称
//查看生成镜像执行的历史命令

二、Docker容器操作基础命令

[root@localhost ~]# docker create -it --name 容器名称 使用的镜像 /bin/bash
//使用指定的镜像生成一个容器,并指定一个shell
常用选项解释如下:
-i:采用交互式的方式;
-t:分配一个伪终端;
-d:后台运行;
--name:指定容器名称
--restart=always:始终保持容器运行(随着docker的启动而启动)
[root@localhost ~]# docker ps //查询本机正在运行的容器
[root@localhost ~]# docker ps -a //查询本机所有的容器,不管容器是否在运行
[root@localhost ~]# docker start 容器名称或容器ID //启动容器
[root@localhost ~]# docker stop 容器名称或容器ID //停止容器
[root@localhost ~]# docker restart 容器名称或容器ID //重新启动容器
[root@localhost ~]# docker exec -it 容器名称或容器ID /bin/bash //进入容器并分配一个可用的shell
[root@localhost ~]# docker attach dhcp //也是进入容器
//如果是attach进入容器,使用exit退出的话这个容器也会关闭。
//使用ctrl+p ctrl+q退出容器,并不会关闭这个容器,会保持容器的运行状态。
[root@localhost ~]# docker cp docker宿主机文件 docker容器的目录 //从本地上传文件到容器中
[root@localhost ~]# docker cp docker容器名称:文件 docker宿主机文件 //将容器中的文件下载到本地
[root@localhost ~]# docker commit 容器名称 镜像名称及标签
//通过容器生成镜像
[root@localhost ~]# docker run -itd --name registry --restart=always -p 5000:5000 -v /registry:/var/lib/registry registry:2
//-p:端口映射(前面是宿主机端口:后面是容器暴露的端口)
//-v:挂载目录(前面是宿主机的目录:后面的是容器的目录)自动创建宿主机的目录
[root@localhost ~]# docker run -itd --name nginx 192.168.1.1:5000/centos:nginx nginx -g "daemon off;"
//创建容器,不进入容器即开启容器中的服务
[root@localhost ~]# docker logs 容器名称会容器ID
//查看容器的日志,可以在后面加“-f”选项,动态输出
//如果没有内容输出则表示容器正常没有错误
[root@localhost ~]# docker inspect 容器名称
//查看容器的详细信息
exec和attach两者的区别:
使用exec的方式进入容器,使用“exit”的方式退出容器后容器并不会停止;
使用attach的方式进入容器,使用“exit”的方式退出容器后容器便会停止;可以使用Ctrl + p 或者 Ctrl + q 组合键的方式退出容器后,并不会关闭这个容器;
exec方式:进入容器是会产生新的进程;
attach方式:进入容器不会产生新的进程;
以下方式生产环境不建议使用:
[root@localhost ~]# docker ps -a -q | xargs docker start //启动本机所有容器
[root@localhost ~]# docker ps -a -q | xargs docker stop //停止本机所有容器
[root@localhost ~]# docker ps -a -q | xargs docker restart //重新启动本机所有容器

[root@localhost ~]# docker pa -a -q | xargs docker rm -f //删除所有容器,相当于“rm -rf /*”
[root@localhost ~]# docker rm 容器名称或容器ID //删除容器(容器是停止的状态)
[root@localhost ~]# docker rm 容器名称或容器ID -f //强制删除容器(容器是运行的状态)

三、docker Swarm群集常用命令

[root@node02 ~]# docker swarm leave
//那个节点想推出swarm群集,就在那台节点上执行这条命令
//节点自动退出swarm群集(相当于辞职)
[root@node01 ~]# docker node rm 节点名称
//由manager主动删除节点(相当于开除)
[root@node01 ~]# docker node promote 节点名称
//将节点升级
[root@node01 ~]# docker node demote 节点名称
//将节点降级
[root@node01 ~]# docker node ls
//查看swarm群集的信息(只可以在manager角色的主机上查看)
[root@node01 ~]# docker node update --availability drain 节点名称
//调整节点不参加工作
[root@node01 ~]# docker swarm join-token worker
//查看加入swarm群集的令牌(可以是worker也可以是manager)
[root@node01 ~]# docker service scale web=4
//扩容、收缩swarn群集servie的数量(取决与群集原本的数量)
//比原本群集数量多,就是扩容,反之、收缩
[root@node01 ~]# docker service ls
//查看创建的service
[root@node01 ~]# docker service ps service的名称
//查看创建的service运行在那些容器上
[root@node01 ~]# docker service create --replicas 6 --name web -p 80:80 nginx
//指定运行的service副本数量
[root@node01 ~]# docker service create --replicas 3 --constraint node.hostname==node03 --name test nginx
//指定node节点,创建名为test的容器
[root@node01 ~]# docker node update --label-add mem=max node02
//以键值对的方式给docker02主机打上标签“mem=max”,等号两边的内容是可以自定义的
[root@node01 ~]# docker service create --name test1 --replicas 3 --constraint 'node.labels.mem==max' nginx
//基于nginx镜像在标签为“mem==max”的主机上运行3个名为test1的服务
[root@node01 ~]# docker node inspect node02
//标签相关的信息,在Spec{ }中有显示

相关内容

热门资讯

外国男子在云南跳伞,半空迟迟不... 近日,有视频显示,一名外国男子背着降落伞从玻璃栈道上跳入峡谷,栈道上有游客拍照鼓掌。男子跳下后,以高...
美国人开始在直播间里“抢”东西... 作者 | 竹芒今年夏天,许多美国消费者的手机屏幕上,出现了这样一幅画面:倒计时十五秒,一件商品的价格...
伊朗连炸20座机库,造成数十名... 伊朗公布重大战果。伊朗WANA通讯社转引伊朗伊斯兰革命卫队第31号声明称,在“胜利2号行动”第21轮...
台军战备水一瓶预算新台币120... 海峡导报综合报道 国民党民代马文君表示,台防务主管部门原先将战备饮用水每瓶预算编列120元(新台币,...
外国人拥入,“中国人活在205... 作者 | 贺一 编辑 | 张来国内正式入伏,入境游也在持续升温。最近,“外国游客来中国避暑”的说法在...
BMS的留白,诺诚健华的窗口 文|锦缎 7月15日,诺诚健华宣布,其自主研发的新一代高选择性口服TYK2抑制剂Soficitin...
全球首款AI智能体手机努比亚N... IT之家 7 月 22 日消息,博主 @熊猫很禿然 今日曝光了全球首款 AI 智能体手机努比亚 Na...
格美粉末取得带自清洗功能搅拌罐... 国家知识产权局信息显示,厦门格美粉末涂料有限公司取得一项名为“一种带自清洗功能的搅拌罐”的专利,授权...
农行员工被指长期从事“冲贷”集... 近日,重庆多位市民向国家金融监督管理总局重庆监管局递交实名举报材料,反映中国农业银行重庆合川支行在职...
中美高层在东盟外长会上的互动,... 中美高层在东盟会议场边举行会晤,本次互动释放了怎样的信号?凤凰卫视连线台湾政治评论员赖岳谦进行点评解...