docker笔记

安装

https://www.vps69.com/posts/install-docker/

常用命令

临时启动镜像

docker run -it --rm --name xxx image-name

启动容器

docker run -it -d --restart always --name -v /path:/path -p80:80 -e MYSQL_USER="test" image-name

进入容器

docker exec -it docker-name bash

nvidia docker 容器内使用显卡

参考:https://cloud.tencent.com/developer/article/1924792

  1. 安装nvidia-docker2并重启
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
apt-get update
apt-get install -y nvidia-docker2
sudo systemctl restart docker
  1. 使用方式
docker run -it --gpus all nvidia/cuda:11.4.0-base-ubuntu20.04 nvidia-smi
或者指定单独的显卡
docker run -d --name kuzco-worker \
  --gpus '"device=0,1"' \
  -e API_KEY=<YOUR_API_KEY> \
  kuzco/worker:latest

依靠Watchtower 容器自动升级其他容器

参考:
https://zhuanlan.zhihu.com/p/553424824 这个例子比较详细一点,还可以发送更新后的邮件通知
https://www.youtube.com/watch?v=kKu1zkL5fCc

filestation 例子:
https://github.com/filecoin-station/core/pkgs/container/core

sudo docker run --name filestation5 --detach --restart always --env FIL_WALLET_ADDRESS=0x123 ghcr.io/filecoin-station/core
sudo docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower

docker logs filestation 2>&1 | grep "rewardsScheduledForAddress\|totalJobsCompleted"

dockerX11转发问题

https://www.zealseeker.com/archives/docker-for-gui-environment/

查看容器的启动命令

参考链接:https://www.cnblogs.com/hellojesson/p/13037949.html

 sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock cucker/get_command_4_run_container [容器名或ID]

docker镜像导入导出命令

# 导出
docker save 0fdf2b4c26d3 > hangge_server.tar
# 导入
docker load < hangge_server.tar

docker代理问题(v友提供)


docker 代理问题:
https://blog.xiaoz.org/archives/20916
https://dockerhub.icu/
https://github.com/cmliu/CF-Workers-docker.io
https://github.com/bboysoulcn/registry-mirror
https://github.com/tech-shrimp/docker_image_pusher
https://github.com/DaoCloud/public-image-mirror

启动后的容器添加开机自启功能

docker update --restart unless-stopped my_container

查看镜像的编译命令 添加--no-trunc,参数可以看到全一点

docker history --no-trunc registry.cn-hangzhou.aliyuncs.com/jasmine/xmrig-6.21.3

docker配置健康检查机制

docker设置了健康检查,但是容器状态为unhealthy,没有自动重启!!!
 HEALTHCHECK --interval=5m --timeout=2m --start-period=45s \
   CMD curl -f --retry 6 --max-time 5 --retry-delay 10 --retry-max-time 60 "http://localhost:8080/health" || bash -c 'kill -s 15 -1 && (sleep 10; kill -s 9 -1)'
------------------
# # # Add HEALTHCHECK instruction
HEALTHCHECK --interval=600s --timeout=180s --retries=1 CMD /bin/bash /usr/local/bin/check_health.sh || bash -c 'kill -s 15 -1 && (sleep 10; kill -s 9 -1)'

排查容器健康检测容器日志:
sudo docker inspect --format='{{json .State.Health}}' aleo| jq

docker健康检查通过脚本启动,想要输出日志到文件并且可以通过docker logs -f查看

/bin/bash -c "\
./aleo_prover  \
--pool $POOLURL \
--address $USERCOUNT \
--custom_name $(hostname | awk -F. '{print $1}') \
| tee -a /var/log/$SERVICE_NAME.log "


docker启动的容器怎么查看使用了几张显卡

 "docker inspect zk-aleo | grep -B5 gpu"

输出示例:
14.17.70.248 | CHANGED | rc=0 >>
                    "Driver": "",
                    "Count": -1,
                    "DeviceIDs": null,
                    "Capabilities": [
                        [
                            "gpu"
14.17.70.55 | CHANGED | rc=0 >>
"DeviceRequests": [
                {
                    "Driver": "",
                    "Count": 0,
                    "DeviceIDs": [
                        "1",
                        "2",
                        "3",
                        "4"
                    ],
                    "Capabilities": [
                        [
                            "gpu"
                        ]
                    ],
                    "Options": {}
                }
            ],


14.17.70.248为全部使用
14.17.70.55为出了1,23,4,其他全部使用

自定义docker镜像目录

cat /etc/docker/daemon.json 
{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ],
  "data-root": "/home/docker/docker_data"
}

posted @   jasmine456  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示