常用命令

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
# 调整docker exec终端高度和宽度
docker exec -it --env COLUMNS=`tput cols` --env LINES=`tput lines` mariadb bash

# 运行容器
docker run -it --rm <image_id> bash

# 查看镜像打包记录(Dockerfile文件内容)
docker history <image_id>

# 重命名镜像repository和tag
docker tag <image id> <new repository>:<new tag>

# 列出所有的容器 ID
docker ps -aq

# 停止所有的容器
docker stop $(docker ps -aq)

# 删除所有的容器
docker rm $(docker ps -aq)

# 删除所有的镜像
docker rmi $(docker images -q)

# 复制文件
docker cp mycontainer:/opt/file.txt /opt/local/
docker cp /opt/local/file.txt mycontainer:/opt/

# 运行容器
# --entrypoint:启动自动运行命令
# --detach:后台运行
# -e:设置容器环境变量
# -v:本地目录挂载至容器目录,ro只读,rw可读可写
docker run -it --network host --entrypoint kolla_start --name glance_api --detach \
-e KOLLA_SERVICE_NAME=glance-api \
-e KOLLA_CONFIG_STRATEGY=COPY_ALWAYS \
-v /dev:/dev:rw -v /etc/localtime:/etc/localtime:ro \
-v /etc/kolla/glance-api:/var/lib/kolla/config_files:ro \
-v /opt/stack/glance/glance:/var/lib/kolla/venv/lib/python2.7/site-packages/glance:rw \
-v /opt/stack/glance_store:/var/lib/kolla/venv/lib/python2.7/site-packages/glance_store:rw \
-v /var/lib/docker/volumes/iscsi_info/_data:/etc/iscsi:rw \
-v /var/lib/docker/volumes/kolla_logs/_data:/var/log/kolla:rw \
-v /var/lib/docker/volumes/glance/_data:/var/lib/glance:rw \
localhost:4000/kolla-openstack/centos-source-glance-api:train

Registry管理命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 查看仓库镜像信息
$ curl -X GET http://localhost:9006/v2/_catalog | python -m json.tool
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 61 100 61 0 0 6209 0 --:--:-- --:--:-- --:--:-- 6777
{
"repositories": [
"library/db-backup-mysql",
"library/mysql"
]
}

# 查看仓库指定镜像的版本列表
$ curl -X GET http://localhost:9006/v2/library/mysql/tags/list | python -m json.tool
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 49 100 49 0 0 3722 0 --:--:-- --:--:-- --:--:-- 3769
{
"name": "library/mysql",
"tags": [
"5.7.29",
"8.0"
]
}

黑科技

用途: 调试编译镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1. 创建Dockerfile,镜像使用需要查看的镜像
cat > Dockerfile << EOF
FROM registry.local:9001/library/sysinv:1.0.0
LABEL maintainer=inspur name=demo

# 手动hang
RUN sleep 999999999
EOF

# 2. 编译镜像
docker build -t demo:v1 .

# 3. 另外开启一个终端,查看编译中的docker
docker ps | grep sleep

# 4. 登录容器
docker exec -it --env COLUMNS=`tput cols` --env LINES=`tput lines` 084a3f584ce3 bash

常见问题

问题1: docker拉取镜像报 Error response from daemon

1
2
3
root@node01: ~ # docker pull busybox
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 10.96.0.10:53: server misbehaving

解决:域名解析问题,需要检查 /etc/resolve.conf 文件中,dns解析地址是否有 114.114.114.114

参考文档