0%

docker常用命令和技巧

相关命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1、查看所有镜像
docker images
2、查看正在运行的容器
docker ps
3、查看所有容器
docker ps -a
4、运行已存在的容器
docker start {id}
5、停止已存在的容器
docker stop {id}
6、删除容器 (必须先停止容器)
docker rm {容器id}
7、删除镜像
docker rmi {镜像id}
8、进入容器,推荐使用
docker exec -it {容器id} /bin/bash
9、进入容器
docker attach {容器id}
10、查看容器ip:
docker inspect --format='{{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

docker命令别名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#!/bin/sh

#alias node='docker run --rm -it -v `pwd`:/app -w /app node:16-alpine '
alias node='docker run --rm -it -v "${CURDIR}":/app -w /app node:16-alpine '
alias npm='docker run --rm -it -v "${CURDIR}":/app -w /app node:16-alpine npm '
alias ffmpeg='docker run --rm -it -v "${CURDIR}":/app -w /app jrottenberg/ffmpeg '

alias dm='docker-machine'
alias dmx='docker-machine ssh'
alias dk='docker'
alias dki='docker images'
alias dks='docker service'
alias dkrm='docker rm'
alias dkl='docker logs'
alias dklf='docker logs -f'
alias dkflush='docker rm `docker ps --no-trunc -aq`'
alias dkflush2='docker rmi $(docker images --filter "dangling=true" -q --no-trunc)'
alias dkt='docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"'
alias dkps="docker ps --format '{{.ID}} ~ {{.Names}} ~ {{.Status}} ~ {{.Image}}'"

dkln() {
docker logs -f `docker ps | grep $1 | awk '{print $1}'`
}

dkp() {
if [ ! -f .dockerignore ]; then
echo "Warning, .dockerignore file is missing."
read -p "Proceed anyway?"
fi

if [ ! -f package.json ]; then
echo "Warning, package.json file is missing."
read -p "Are you in the right directory?"
fi

VERSION=`cat package.json | jq .version | sed 's/\"//g'`
NAME=`cat package.json | jq .name | sed 's/\"//g'`
LABEL="$1/$NAME:$VERSION"

docker build --build-arg NPM_TOKEN=${NPM_TOKEN} -t $LABEL .

read -p "Press enter to publish"
docker push $LABEL
}

dkpnc() {
if [ ! -f .dockerignore ]; then
echo "Warning, .dockerignore file is missing."
read -p "Proceed anyway?"
fi

if [ ! -f package.json ]; then
echo "Warning, package.json file is missing."
read -p "Are you in the right directory?"
fi

VERSION=`cat package.json | jq .version | sed 's/\"//g'`
NAME=`cat package.json | jq .name | sed 's/\"//g'`
LABEL="$1/$NAME:$VERSION"

docker build --build-arg NPM_TOKEN=${NPM_TOKEN} --no-cache=true -t $LABEL .
read -p "Press enter to publish"
docker push $LABEL
}

dkpl() {
if [ ! -f .dockerignore ]; then
echo "Warning, .dockerignore file is missing."
read -p "Proceed anyway?"
fi

if [ ! -f package.json ]; then
echo "Warning, package.json file is missing."
read -p "Are you in the right directory?"
fi

VERSION=`cat package.json | jq .version | sed 's/\"//g'`
NAME=`cat package.json | jq .name | sed 's/\"//g'`
LATEST="$1/$NAME:latest"

docker build --build-arg NPM_TOKEN=${NPM_TOKEN} --no-cache=true -t $LATEST .
read -p "Press enter to publish"
docker push $LATEST
}

dkclean() {
docker rm $(docker ps --all -q -f status=exited)
docker volume rm $(docker volume ls -qf dangling=true)
}

dkprune() {
docker system prune -af
}

dktop() {
docker stats --format "table {{.Container}}\t{{.Name}}\t{{.CPUPerc}} {{.MemPerc}}\t{{.NetIO}}\t{{.BlockIO}}"
}

dkstats() {
if [ $# -eq 0 ]
then docker stats --no-stream;
else docker stats --no-stream | grep $1;
fi
}

dke() {
docker exec -it $1 /bin/sh
}

dkexe() {
docker exec -it $1 $2
}

dkreboot() {
osascript -e 'quit app "Docker"'
countdown 2
open -a Docker
echo "Restarting Docker engine"
countdown 120
}

dkstate() {
docker inspect $1 | jq .[0].State
}

dksb() {
docker service scale $1=0
sleep 2
docker service scale $1=$2
}

mongo() {
mongoLabel=`docker ps | grep mongo | awk '{print $NF}'`
docker exec -it $mongoLabel mongo "$@"
}

redis() {
redisLabel=`docker ps | grep redis | awk '{print $NF}'`
docker exec -it $redisLabel redis-cli
}

Welcome to my other publishing channels