Skip to content

06 Docker 基础 - 命令别名

编辑 bashrc

普通用户编辑 ~/.zshrc 或者 ~/.bashrc 即可。

bash
# ------------------------------------
# Docker alias and function
# ------------------------------------
# Get latest container ID
alias dkpsl="docker ps -l"
# Get container process and format output
alias dkpsf="docker ps --format 'table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}'"
# Get container IP
alias dip="docker inspect --format '{{ .NetworkSettings.IPAddress }}'"
# Run deamonized container, e.g., $dkd base /bin/echo hello
alias dkd="docker run -d -P"
# Run interactive container, e.g., $dki base /bin/bash
alias dki="docker run -i -t -P"
# Execute interactive container, e.g., $dex base /bin/bash
alias dex="docker exec -i -t"
# Stop all containers
dstop() { docker stop "$(docker ps -a -q)"; }
# Remove all containers
drm() { docker rm "$(docker ps -a -q)"; }
# Stop and Remove all containers
alias drmf='docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)'
# Remove all images
dri() { docker rmi "$(docker images -q)"; }
# Dockerfile build, e.g., $dbu tcnksm/test
dbu() { docker build -t=$1 .; }
# Show all alias related docker
dalias() { alias | grep 'docker' | sed "s/^\([^=]*\)=\(.*\)/\1 => \2/" | sed "s/['|\']//g" | sort; }
# Bash into running container
dbash() { docker exec -it $(docker ps -aqf "name=$1") bash; }

安装 zsh-docker-aliases 插件

  1. 安装 zsh 和 omz。

    bash
    sudo apt install -y zsh # 安装 zsh
    REMOTE="https://e.coding.net/oh-my-zsh/oh-my-zsh/oh-my-zsh.git" sh install.sh # 安装 omz
  2. 安装 zsh-docker-aliases 插件。

    bash
    ~ ❯ git clone https://e.coding.net/oh-my-zsh/oh-my-zsh/zsh-docker-aliases.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-docker-aliases
    Cloning into '/home/ubuntu/.oh-my-zsh/custom/plugins/zsh-docker-aliases'...
    remote: Enumerating objects: 101, done.
    remote: Counting objects: 100% (101/101), done.
    remote: Compressing objects: 100% (49/49), done.
    remote: Total 101 (delta 52), reused 101 (delta 52), pack-reused 0
    Receiving objects: 100% (101/101), 27.63 KiB | 3.07 MiB/s, done.
    Resolving deltas: 100% (52/52), done.
  3. 配置 omz。

    bash
    ~ ❯ vim ~/.zshrc # 编辑 zshrc,plugins 中添加 zsh-docker-aliases
    
    ...
    plugins=(git aliases command-not-found zsh-docker-aliases)
    ...
    
    ~ ❯ omz reload # 刷新 omz 配置
  4. alias 配置成果展示。

    bash
    ~ ❯ omz reload
    ~ ❯ dkps
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    ~ ❯ dkpsa
    CONTAINER ID   IMAGE         COMMAND    CREATED          STATUS                      PORTS     NAMES
    de3ca6e89f93   hello-world   "/hello"   14 minutes ago   Exited (0) 14 minutes ago             loving_blackburn
    ~ ❯ dkpsl
    CONTAINER ID   IMAGE         COMMAND    CREATED          STATUS                      PORTS     NAMES
    de3ca6e89f93   hello-world   "/hello"   14 minutes ago   Exited (0) 14 minutes ago             loving_blackburn
    ~ ❯ dkpsf
    CONTAINER ID   IMAGE     PORTS     STATUS    NAMES
    ~ ❯ dkpsf -a
    CONTAINER ID   IMAGE         PORTS     STATUS                      NAMES
    de3ca6e89f93   hello-world             Exited (0) 14 minutes ago   loving_blackburn

总结

bash
 als -g docker
[docker]
  dex = docker exec -i -t
  dip = docker inspect --format '\''{{ .NetworkSettings.IPAddress }}'\
  dk = docker
  dkC = docker container
  dkCE = docker container exec -e COLUMNS=`tput cols` -e LINES=`tput lines` -i -t
  dkCL = docker container logs -f
  dkCP = docker container unpause
  dkCR = docker container run -e COLUMNS=`tput cols` -e LINES=`tput lines` -i -t --rm
  dkCRe = docker container run -e COLUMNS=`tput cols` -e LINES=`tput lines` -i -t --rm --entrypoint /bin/bash
  dkCS = docker container restart
  dkCa = docker container attach
  dkCcp = docker container cp
  dkCd = docker container diff
  dkCe = docker container exec
  dkCin = docker container inspect
  dkCk = docker container kill
  dkCl = docker container logs
  dkCls = docker container ls
  dkCp = docker container pause
  dkCpr = docker container prune
  dkCr = docker container run
  dkCrm = docker container rm
  dkCrn = docker container rename
  dkCs = docker container start
  dkCss = docker container stats
  dkCtop = docker container top
  dkCup = docker container update
  dkCw = docker container wait
  dkCx = docker container stop
  dkE = docker exec -e COLUMNS=`tput cols` -e LINES=`tput lines` -i -t
  dkI = docker image
  dkIb = docker image build
  dkIh = docker image history
  dkIim = docker image import
  dkIin = docker image inspect
  dkIls = docker image ls
  dkIph = docker image push
  dkIpl = docker image pull
  dkIpr = docker image prune
  dkIrm = docker image rm
  dkIsv = docker image save
  dkIt = docker image tag
  dkK = docker stack
  dkKls = docker stack ls
  dkKps = docker stack ps
  dkKrm = docker stack rm
  dkL = docker logs -f
  dkN = docker network
  dkNin = docker network inspect
  dkNls = docker network ls
  dkNpr = docker network prune
  dkNrm = docker network rm
  dkNs = docker network connect
  dkNx = docker network disconnect
  dkP = docker unpause
  dkR = docker run -e COLUMNS=`tput cols` -e LINES=`tput lines` -i -t --rm
  dkRM = docker system prune
  dkRe = docker run -e COLUMNS=`tput cols` -e LINES=`tput lines` -i -t --rm --entrypoint /bin/bash
  dkS = docker restart
  dkV = docker volume
  dkVin = docker volume inspect
  dkVls = docker volume ls
  dkVpr = docker volume prune
  dkVrm = docker volume rm
  dkW = docker swarm
  dkY = docker system
  dkYdf = docker system df
  dkYpr = docker system prune
  dka = docker attach
  dkb = docker build
  dkd = docker run -d -P
  dkdf = docker system df
  dke = docker exec
  dkh = docker history
  dki = docker run -i -t -P
  dkim = docker import
  dkin = docker inspect
  dkk = docker kill
  dkkh = docker kill -s HUP
  dkl = docker logs
  dkli = docker login
  dklo = docker logout
  dkls = docker ps
  dkp = docker pause
  dkph = docker push
  dkpl = docker pull
  dkplI = docker images --format "{{ .Repository }}" | grep -v "^<none>$" | xargs -L1 docker pull
  dkps = docker ps
  dkpsa = docker ps -a
  dkpsf = docker ps --format '\''table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}'\
  dkpsl = docker ps -l
  dkr = docker run
  dkrm = docker rm
  dkrmC = docker rm $(docker ps -qaf status=exited)
  dkrmI = docker rmi $(docker images -qf dangling=true)
  dkrmV = docker volume rm $(docker volume ls -qf dangling=true)
  dkrmi = docker rmi
  dkrn = docker rename
  dks = docker start
  dkss = docker stats
  dksv = docker save
  dkt = docker tag
  dktop = docker top
  dkup = docker update
  dkv = docker version
  dkw = docker wait
  dkx = docker stop
  drmf = docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)