dockerのalias を以下のように設定している。

alias dr='docker run -it --rm'
alias di='docker images'
alias dp='docker ps -a'

このままだとbash-completionが効かないので自分で定義する。 ":"があると、うまくいかなかったが、下記のようにして、思った通りにできた。
.bashrcの内容。

comp_images() {
  _get_comp_words_by_ref -n : cur prev words
  case "$prev" in
  -p)
    COMPREPLY=(80:8888);;
  *)
    COMPREPLY=(`python ~/bin/docker_completion.py $words $cur $prev`)
  esac
}
complete -F comp_images dr

~/bin/docker_completion.pyの内容。

import sys
from subprocess import run, PIPE
com, cur, prev = (sys.argv[1:] + ['']*3)[:3]
o = run(['docker', 'images'], stdout=PIPE, universal_newlines=True).stdout
f = lambda i, t: '%s:%s'%(i,t) if t != 'latest' else i
ss = [f(*s.split()[:2]) for s in o.rstrip().split('\n')[1:]]
g = lambda t: t[t.rindex(':')+1:] if ':' in cur and ':' in t else t
print(' '.join(sorted(set(g(s) for s in ss if s != cur and s.startswith(cur)))))