====== 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
++++