换源
修改/etc/docker/daemon.json
中的registry-mirrors
:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com/",
"https://docker.mirrors.ustc.edu.cn/"
]
}
命令
# 查看容器
# -a:显示未运行容器
$ docker ps -a
# 删除容器
$ docker rm container_id
# 重命名容器
$ docker rename old_name new_name
# 查看镜像
$ docker images
# 删除镜像
$ docker rmi image_id
# 编译当前目录的 Dockerfile
$ docker build -t image_name .
# 运行容器
# -d:后台运行容器,返回容器 ID
$ docker run --name container_name \
-p local_port:container_port -v local_path:container:path -d \
image_name
自用镜像启动命令
- Redis:
docker run -d --restart=always --name redis -p 6379:6379 redis --requirepass 123
- PostgreSQL:
docker run -d --restart=always --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=123 -e PGDATA=/var/lib/postgresql/data/pgdata -v E:/duanluan/Docker/postgres/data:/var/lib/postgresql/data postgres
- MariaDB:
docker run --detach --name mariadb -p 3307:3307 --env MARIADB_ROOT_PASSWORD=123 -v E:/duanluan/Docker/mariadb/data:/var/lib/mysql -v E:/duanluan/Docker/mariadb/conf:/etc/mysql/conf.d mariadb
- Halo:
docker run -d --name halo -p 8090:8090 -v /root/.halo2:/root/.halo2:rw registry.fit2cloud.com/halo/halo:2.20 --spring.r2dbc.url=r2dbc:pool:mariadb://xxx:3307/xxx --spring.r2dbc.username=xxx --spring.r2dbc.password=123 --spring.sql.init.platform=mysql --halo.external-url=https://blog.zhjh.top/ --server.port=8090
启动异常
Failed to set version to docker-desktop: exit code: -1
netsh winsock reset
容器开机启动
--restart 参数:
- no:默认,容器退出时不重启容器
- on-failure:容器非正常退出时重启容器
- on-failure:n:容器非正常退出时重启容器,最多重启 n 次
- always:总是重启容器
- unless-stopped:退出时重启容器,但忽略 Docker 守护进程启动时停止的容器
创建时设置
docker run -d --restart=always ……
更新已有容器
docker update --restart=always 容器 ID/容器名
gcr.io 镜像加速
增加前缀即可:
ghcr.io/gethomepage/homepage:latest => m.daocloud.io/ghcr.io/gethomepage/homepage:latest
k8s.gcr.io/coredns/coredns => m.daocloud.io/k8s.gcr.io/coredns/coredns
Watchtower 监控更新容器
文档:https://containrrr.dev/watchtower/
参数
- -c/--cleanup:清理旧镜像,https://containrrr.dev/watchtower/arguments/#cleanup
- --schedule:支持 6 个字段的 cron 表达式的检查时间,https://containrrr.dev/watchtower/arguments/#scheduling
- --run-once:更新一次后删除自身,配合
--rm
一起使用。
命令示例
# 单次
$ docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
-c --run-once \
calibre-web
# 定期
$ docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
-c \
--schedule "0 0 12 * * 6" \
calibre-web
导入 dmp 文件到 oracle 容器
# 复制文件至容器
docker cp C:\Users\duanluan\Desktop\xxx.dmp 52eabab26311:/home
# 进入容器
docker exec -it 52eabab26311 /bin/bash
# 导入
imp 用户名/密码 file=/home/xxx.dmp full=y ignore=y
评论区