Docker命令的简化

1、背景

我们在使用Docker的时候,有些命令非常常用,但是其默认的输出非常不理想,命令也过长,因此导致输入命令耗时很长,此时就有必要将常用的命令给简化,本文推荐几个简化后的命令;

2、命令别名

~/.bashrc文件中加入如下命令:

alias docker-img='sudo docker images --format "table {{.Repository}}:{{.Tag}}\t{{.ID}}"'
alias docker-ps='sudo docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Image}}"'
alias docker-ps-a='sudo docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Image}}"'
alias idocker='sudo idocker'

然后使用如下命令重新加载~/.bashrc,使新配置生效:

chenzhiwei:advanced$ source ~/.bashrc
2.1 docker-img

这个命令是查看容器镜像的,大家可以看一下原始命令的输出:

chenzhiwei:advanced$ docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
advanced_backend                latest              a58f1afa680a        9 days ago          490MB
advanced_frontend               latest              f7bd51b10138        9 days ago          490MB
yiisoftware/yii2-php            7.4-apache          26481723ed8b        9 days ago          490MB

下面使用docker-img输出:

chenzhiwei:advanced$ docker-img
REPOSITORY:TAG                            IMAGE ID
advanced_backend:latest                   a58f1afa680a
advanced_frontend:latest                  f7bd51b10138
yiisoftware/yii2-php:7.4-apache           26481723ed8b

是不是简洁很多。

2.2 docker-ps

这个是重点,用于查看目前已经启动运行的容器,如果是原始的命令,展示如下:

chenzhiwei:advanced$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
931a767f5d1a        centos              "/bin/bash"         23 hours ago        Up 23 hours                             advaned_centos

下面是优化后的命令:

chenzhiwei:advanced$ docker-ps
CONTAINER ID        NAMES               IMAGE
931a767f5d1a        advaned_centos      centos

去掉了很多并不重要的列的输出;

2.3 docker-ps-a

这个命令也很常用,用于展示所有容器,不管正在跑的还是挂掉的都会有,原始命令如下:

chenzhiwei:Desktop$ docker ps -a
CONTAINER ID        IMAGE                                    COMMAND                   CREATED             STATUS                        PORTS               NAMES
931a767f5d1a        centos                                   "/bin/bash"               23 hours ago        Up 23 hours                                       advaned_centos

这个命令比docker ps输出的字段还要多,导致终端异常拥挤,非常不利于浏览,如下是优化后的效果:

chenzhiwei:Desktop$ docker-ps-a
CONTAINER ID        NAMES                   IMAGE
931a767f5d1a        advaned_centos          centos
03d980e76164        advanced_frontend_1     advanced_frontend
85b2502a9a48        advanced_backend_1      advanced_backend
7acacee718a5        advanced_mysql_1        mysql:5.7

3、idocker

这个命令是我自定义的于docker相关的命令,是一个shell脚本,主要功能如下:

  • 快速进入容器;
  • 任何目录下启动某个容器组
  • 任何目录下停止某个容器组

代码如下,主要把idocker文件放到$PATH目录下,并且设置可执行权限:

#!/bin/bash
#example:
#params $2 : 第二个参数表示
#idocker in mysql

if [ "$1" == "in" ];then
    sudo docker exec -it $2 /bin/bash
fi

if [ "$1" == "start" ];then
    if [ "$2" == "yii" ];then
    	sudo /usr/local/bin/docker-compose -f /tmp/advanced/docker-compose.yml start
    fi
fi
if [ "$1" == "stop" ];then
    if [ "$2" == "yii" ];then
    	sudo /usr/local/bin/docker-compose -f /tmp/advanced/docker-compose.yml stop
    fi
fi

演示如下:

进入某个容器:

chenzhiwei:Desktop$ idocker in advaned_centos
[root@931a767f5d1a /]# 

启停容器组:

chenzhiwei:Desktop$ idocker start yii
Starting frontend ... done
Starting backend  ... done
Starting mysql    ... done
chenzhiwei:Desktop$ idocker stop yii
Stopping advanced_frontend_1 ... done
Stopping advanced_backend_1  ... done
Stopping advanced_mysql_1    ... done

4、总结

好的工具可以让开发事半功倍,大家也可以自定义idocker脚本,实现更多的功能。

关注我的微信公众号,更多文章推送不遗漏:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值