背景说明
使用Docker过程中需要记住一些辅助命令,此时相对比较费脑子,这里整理了快捷命令。
解决方案
创建脚本文件idocker并放置至目录/usr/local/bin/下
#!/bin/bash#example:#params $2 :第二个参数表示#idocker in mysqlif [ "$1" == "reset" ];thendocker stop $(docker ps -q )docker rm $(docker ps -a -q )fiif [ "$1" == "images" ];thendocker images --format "table {{.Repository}}:{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}"fiif [ "$1" == "ips" ];thendocker inspect --format "{{.Name}} {{.Config.Image}} {{.Config.Hostname}} {{.NetworkSettings.IPAddress}}" $(docker ps -q)fiif [ "$1" == "ps" ];thendocker ps --format "table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Networks}}\t{{.Status}}\t{{.Ports}}"fiif [ "$1" == "search" ];thenfor Repo in $* ; docurl -s -S "https://registry.hub.docker.com/v2/repositories/library/$Repo/tags/" | \sed -e 's/,/,\n/g' -e 's/\[/\[\n/g' | \grep "name" | awk -F\" '{print $4;}' | \sort -fu | \sed -e "s/^/${Repo}:/"donefiif [ "$1" == "in" ];thendocker exec -it $2 /bin/bashfiif [ "$1" == "ip" ];thendocker inspect --format "{{.NetworkSettings.IPAddress}}" $2fiif [ "$1" == "volumes" ];thendocker inspect --format "{{.Config.Volumes}}" $2fiif [ "$1" == "start" ];thenif [ "$2" == "yii" ];thensudo /usr/local/bin/docker-compose -f /tmp/advanced/docker-compose.yml startfifiif [ "$1" == "stop" ];thenif [ "$2" == "yii" ];thensudo /usr/local/bin/docker-compose -f /tmp/advanced/docker-compose.yml stopfifi
!/bin/bash指定shell解释器
赋予可执行权限
[root@template ~]# chmod +x /usr/local/bin/idocker[root@template ~]# idocker psCONTAINER ID NAMES IMAGE NETWORKS STATUS PORTSe47c82f7326e haproxy haproxy playwithdocker_default Up 11 hours 0.0.0.0:80->8080/tcp, :::80->8080/tcpf4f4a00cc786 pwd golang playwithdocker_default Up 11 hours1c271864f6a2 l2 golang playwithdocker_default Up 11 hours 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:8022->22/tcp, :::8022->22/tcp, 0.0.0.0:8053->53/tcp, :::8053->53/tcp
进入容器
[root@template ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESd91aa5eac508 nginx "/docker-entrypoint.…" 49 minutes ago Up 49 minutes 80/tcp blissful_darwin[root@template ~]# idocker in d91aa5eac508root@d91aa5eac508:/#root@d91aa5eac508:/# exitexit[root@template ~]#
容器主机
[root@template ~]# idocker ip d91aa5eac508172.17.0.2[root@template ~]#
