镜像源换源加速
换源是修改/etc/docker/daemon.json
中的registry-mirrors
:
{
"registry-mirrors": [
"https://hub.fast360.xyz",
"https://image.cloudlayer.icu"
]
}
常用命令
# 查看容器
# -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
自用镜像启动命令
- 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
- 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
- oracle-xe:
docker run --name oracle-xe -d -p 1521:1521 -e ORACLE_PASSWORD=123 -v E:/duanluan/Docker/oracle/oradata:/opt/oracle/oradata gvenzl/oracle-xe
- MongoDB:
docker run -d --restart=always --name mongodb -v E:/duanluan/Docker/mongodb/data:/data/db -p 27017:27017 mongo --auth
docker exec -it mongodb mongo admin mongo admin --eval "db.createUser({ user: 'admin', pwd: '123', roles: [{ role: 'root', db: 'admin' }]})"
- Redis:
docker run -d --restart=always --name redis -p 6379:6379 redis --requirepass 123
- MinIO:
docker run -d --restart=always --name minio -p 9000:9000 -p 9001:9001 -v E:/duanluan/Docker/minio/data:/data -e "MINIO_ROOT_USER=root" -e "MINIO_ROOT_PASSWORD=123" quay.io/minio/minio server /data --console-address ":9001"
- SRS:
docker run -d --name srs -p 1935:1935 -p 1985:1985 -p 11248:8080 ossrs/srs
- 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
容器开机启动
--restart 参数:
- no:默认,容器退出时不重启容器
- on-failure:容器非正常退出时重启容器
- on-failure:n:容器非正常退出时重启容器,最多重启 n 次
- always:总是重启容器
- unless-stopped:退出时重启容器,但忽略 Docker 守护进程启动时停止的容器
创建时设置
docker run -d --restart=always ……
更新已有容器
docker update --restart=always 容器 ID/容器名
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
启动异常
Docker Desktop Failed to set version to docker-desktop: exit code: -1
netsh winsock reset
WSL2 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
https://blog.csdn.net/qq_21258589/article/details/137360850
WSL2 更新失败(退出代码: 1603)。错误代码: Wsl/CallMsi/Install/ERROR_INSTALL_FAILURE
https://blog.csdn.net/weixin_44358931/article/details/143952359
评论区