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脚本,实现更多的功能。
关注我的微信公众号,更多文章推送不遗漏: