docker

排查分析


# 进入容器的网络命名空间

# 获取容器的命名空间 ID
docker inspect --format "{{.State.Pid}}" wcn7-elasticsearch-1
crictl inspect <container-id> | grep  pid

# 进入指定 id 的网络命名空间
nsenter -n -t <pid>

# 一步进入网络ns
nsenter -n -t $(docker inspect --format "{{.State.Pid}}" v2raya)

nsenter -n -t $(crictl inspect -o go-template --template='{{ .info.pid }}' $(crictl ps | grep kube-scheduler | awk '{print $1}'))


# 查找容器在宿主机的 rootfs
docker inspect 4b30b34c8434 | egrep -i mergeddir
docker inspect  -f '{{.GraphDriver.Data.MergedDir}}' 4b30b34c8434

快速管理


docker exec -it xxxx sh                 # 进入容器

docker stop $(docker ps -a -q)          # 停止全部服务

docker volume ls --format "{{.Name}}"   # 列出卷名称

# 查看磁盘使用情况
docker system df
docker system df -v

# 启动
# --net="host"
# --restart=always
# -p 1000:1000
# -e AENV='xxx2'
docker run -it --name test -h test  --rm alpine:3.11.6 sh

# 替代 entrypoint 参数
docker run -it --entrypoint sh nginx:1.23.1-alpine

# 更新容器配置
docker update --restart=always nacos

镜像管理


# 列出全部镜像:tag
docker images --format "{{.Repository}}:{{.Tag}}"

# 导出
docker save chenwx/app:0.3 > ./app_0.3.tar
gzip ./app_0.3.tar


# build
docker build -t chenwx/app:0.3 -f dockerfile/app.dockerfile .

# 下载并直接推送到目标服务器
docker save ghcr.io/psviderski/unregistry:X.Y.Z | ssh user@server docker load

skopeo

# 下载到本地
skopeo copy --override-arch amd64 --override-os linux \
    docker://kong:2.8.1 \
    docker-archive:v2raya.tar:mzz2017/v2raya:v2.2.7.4

# 拉取+推送到仓库
skopeo copy --override-arch amd64 --override-os linux \
    docker://kong:2.8.1 \
    docker://harbor.services.wait/docker.io/kong:2.8.1

常用镜像

docker pull alpine:3.11.6
docker pull centos:7.5.1804
docker pull python:3.7.0-slim
docker pull python:3.7.0-alpine

docker pull redis:4.0.10-alpine
docker pull nginx:1.15.1-alpine

dockerfile 常用项

ENV LANG "en_US.UTF-8"      # 即容器内语言
ENV TZ "Asia/Shanghai"      # 时区

代理

# proxy
/usr/lib/systemd/system/docker.service
Environment="HTTP_PROXY=http://192.168.0.73:15732"
Environment="HTTPS_PROXY=http://192.168.0.73:15732"

systemctl daemon-reload
systemctl restart docker
最后更新于