侧边栏壁纸
  • 累计撰写 75 篇文章
  • 累计创建 41 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Docker 使用笔记

勤为径苦作舟
2023-09-29 / 0 评论 / 0 点赞 / 46 阅读 / 3714 字 / 正在检测是否收录...

换源

修改/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

常用镜像启动命令

  • Redisdocker run -d --restart=always --name redis -p 6379:6379 redis --requirepass 123
  • PostgreSQLdocker 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
  • MariaDBdocker 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

启动异常

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

公开镜像加速 - DaoCloud Enterprise

Watchtower 监控更新容器

文档:https://containrrr.dev/watchtower/

参数

命令示例

# 单次
$ 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
0

评论区