====== Docker 命令 ====== ===== 安装 ===== 树莓派上安装 docker (([[https://www.jianshu.com/p/6fa65844e9a2|树莓派4b安装Docker与docker-compose过程及问题解决]])) [[https://yeasy.gitbook.io/docker_practice/install/raspberry-pi|安装说明书]] [[https://omar2cloud.github.io/rasp/rpidock/|谷歌推荐 树莓派上安装 Docker]] [[https://docs.docker.com/engine/install/ubuntu/|install docker on ubuntu]] / ''%%apt-get install docker-compose%%'' ==== 删除 ==== dpkg -l | grep -i docker // 找到所有的包 sudo apt-get purge -y docker-compose docker docker.io python3-docker python3-dockerpty sudo apt-get autoremove -y --purge docker-compose docker docker.io python3-docker python3-dockerpty ==== 启动/停止服务 ==== systemctl start docker systemctl stop docker systemctl status docker systemctl restart docker systemctl enable docker docker version 如果发现错误,尝试重新加载守护进程 sudo systemctl daemon-reload sudo systemctl restart docker 或者依赖服务 sudo systemctl status containerd sudo systemctl start containerd ==== 针对容器的命令 ==== docker ps -as // 查看容器在线状态及大小 // 容器 freenom docker logs freenom // 查看freenom容器的运行输出日志 docker restart freenom docker stop freenom docker rm -f freenom docker stats --no-stream // 查看 docker 容器占用 CPU,内存等信息 // 容器已经运行后,更新容器让其自动启动 docker update --restart=always 《container name》 ==== 端口映射 ==== docker port container_ID # 查看容器ID端口映射 // 以上指令会将容器的80端口映射到宿主机的8000端口上。 docker run -p 8000:80 -it ubuntu /bin/bash // 停止所有容器 docker stop $(docker ps -a -q) // 删除所有容器 docker rm $(docker ps -a -q) // 删除缓存镜像 docker system prune --volumes ==== 运行容器 ==== 查看容器 ''%%docker container ls -a%%'' 进入容器命令(容器nginx) ''%%docker exec -it nginx bash%%'' ([[https://www.cnblogs.com/zfding/p/11429695.html|配置nginx]]) 例如:nginx - 使用docker 下载nginx 镜像 docker pull nginx - 启动nginx - docker run --name nginx -p 80:80 -d nginx ==== 清理容器 ==== 清理docker的问题 [[https://blog.csdn.net/ujm097/article/details/90402158|docker容器优化清理]] 1. 使用''%%df -l%%'' 命令查看本地文件系统,可以看到大量磁盘空间被docker容器的日志占用。使用''%%docker system df%%''命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况:''%%docker system prune%%''命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了。 * ''%%docker image ls -f dangling=true%%'' 列出所有悬挂状态的镜像 * ''%%docker image prune%%'' 清理悬挂状态的镜像的镜像 对于悬空镜像和未使用镜像可以使用手动进行个别删除: - 删除所有悬空镜像,不删除未使用镜像:docker rmi $(docker images -f "dangling=true" -q) - 删除所有未使用镜像和悬空镜像 docker rmi $(docker images -q) - 清理卷。如果卷占用空间过高,可以清除一些不使用的卷,包括一些未被任何容器调用的卷(-v 详细信息中若显示 LINKS = 0,则是未被调用): - 删除所有未被容器引用的卷:docker volume rm $(docker volume ls -qf dangling=true) - 容器清理。如果发现是容器占用过高的空间,可以手动删除一些: - 删除所有已退出的容器:docker rm -v $(docker ps -aq -f status=exited) - 删除所有状态为dead的容器docker rm -v $(docker ps -aq -f status=dead) 2. 查看docker各个容器的日志空间占用 ls -lh $(find /var/lib/docker/containers/ -name *-json.log) !/bin/sh echo "======== start clean docker containers logs ========" logs=$(find /var/lib/docker/containers/ -name *-json.log) for log in $logs do echo "clean logs : $log" cat /dev/null > $log done echo "======== end clean docker containers logs ========" 或者修改设置,限制日志的大小。修改完重启 ''%%systemctl restart docker%%'' cat > /etc/docker/daemon.json < 3. 查看docker各个容器内存使用情况:docker stats ==== 修改config ==== 停止运行的容器 docker stop <容器名或ID> 修改配置文件 docker exec -it <容器ID> <编辑器> <路径> docker exec -it h5ai vim /config/path docker exec -it h5ai /bin/bash 最后启动容器 docker start ====== Apps ====== ===== Portainer ===== docker run -d -p 8000:8000 -p 9443:9443 --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:2.9.3 ===== Wordpress ===== [[https://www.cnblogs.com/nickchou/p/14430691.html|参考文章]] 1. 准备数据库,创建一个空的数据库 wordpress 就好了。不需要创建管理员用户。因为安装的时候给出root用户 ++++ 152.70.59.87 | db_name: wordpress\\ user: wordpress ++++ 2. 准备镜像和volume docker pull wordpress:latest mkdir /root/wordpress 3. 运行安装 docker run -d --name wordpress \ -e TZ=Europe/Berlin \ -e WORDPRESS_DB_HOST=152.70.59.87:3306 \ -e WORDPRESS_DB_USER=root \ -e WORDPRESS_DB_PASSWORD="s#;zb_OfJW]P" \ -e WORDPRESS_DB_NAME=wordpress \ -p 8080:80 \ --restart=always \ wordpress 4. 完成后打开地址 http://152.70.59.87:8080 可以进行初始化设置。Nginx 服务器端口转发以后,需要进入后台管理 http://152.70.59.87:8080/wp-admin "设置 -> 常规 -> wordpress 地址" 和 "站点地址" 改为为它配置的域名 https://blog.simperator.eu.org ++++ ngnix | server { listen 443 ssl; server_name blog.simperator.eu.org; ssl_certificate /root/ssl-keys/fullchain.pem; ssl_certificate_key /root/ssl-keys/private.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } server { if ($host = blog.simperator.eu.org) { return 301 https://$host$request_uri; } listen 80; server_name blog.simperator.eu.org; return 404; # managed by Certbot } ++++ ===== Aria2 + AriaNG ===== [[https://www.psay.cn/toss/185.html|在docker中使用Aria2、AriaNG和FileRun实现完美下载]] / [[https://www.cnblogs.com/wqp001/p/14709997.html|Docker安装aria2]] aria2 安装 docker run -d \ --name aria2 \ --restart unless-stopped \ --log-opt max-size=1m \ -e PUID=1000 \ -e PGID=1000 \ -e UMASK_SET=022 \ -e RPC_SECRET=123456 \ -e RPC_PORT=6800 \ -e LISTEN_PORT=6888 \ -p 16800:6800 \ -p 16888:6888 \ -p 16888:6888/udp \ -v /mnt/hdisk/docker/aria2/config:/config \ -v /mnt/onedrive/data:/downloads \ p3terx/aria2-pro 安装AriaNG,然后在浏览器打开 http://192.168.0.159:6800 docker run -d \ --name ariang \ --log-opt max-size=1m \ --restart unless-stopped \ -p 6880:6880 \ p3terx/ariang {{:it:server:rpc_aria2_.png?600|}} ===== noVNC ===== [[https://blog.laoda.de/archives/install-ubuntu-desktop|noVNC 安装]] 脚本 创建 volume 映射 /root/desktop (oracle 1GB 内存的vps根本跑不起来) ++++ docker-compose.yml | version: '3.5' services: ubuntu-xfce-vnc: container_name: xfce image: imlala/ubuntu-xfce-vnc-novnc:latest shm_size: "1gb" # 防止高分辨率下Chromium崩溃,如果内存足够也可以加大一点点 ports: - 5900:5900 # TigerVNC的服务端口(保证端口是没被占用的,冒号右边的端口不能改,左边的可以改) - 6080:6080 # noVNC的服务端口,注意事项同上 environment: - VNC_PASSWD=PAS3WorD # 改成你自己想要的密码 - GEOMETRY=1024x768 # 屏幕分辨率,800×600/1024×768诸如此类的可自己调整 - DEPTH=24 # 颜色位数16/24/32可用,越高画面越细腻,但网络不好的也会更卡 volumes: - /root/desktop/Downloads:/root/Downloads # Chromium/Deluge/qBittorrent/Transmission下载的文件默认保存位置都是root/Downloads下 - /root/desktop/Documents:/root/Documents # 映射一些其他目录 - /root/desktop/Pictures:/root/Pictures - /root/desktop/Videos:/root/Videos - /root/desktop/Music:/root/Music restart: unless-stopped ++++