Docker基本使用


  • 查看本地镜像文件:docker images
  • 从镜像库搜索镜像:docker search [IMAGE NAME](支持模糊搜索)
  • 从镜像库拉取镜像:docker pull [IMAGE NAME]
  • 删除镜像文件:docker rmi [IMAGE ID] (存在容器时不可删除)
  • 查询运行容器:docker container ls
  • 查询全部容器:docker container ls --alldocker ps -a
  • 查看容器详细信息:docker inspect [CONTAINER ID]
  • 停用容器:docker stop [CONTAINER ID]
  • 重启容器:docker restart [CONTAINER ID]
  • 删除容器:docker rm [CONTAINER ID]
  • 进入容器:docker attach [CONTAINER ID]

根据镜像创建容器并运行

1
docker run [OPTIONS] [IMAGE NAME]

举例

1
docker run -d --name=genshinhelper -v /etc/genshin:/app/genshinhelper/config --restart always yindan/genshinhelper:latest

解释:以进程守护模式启动镜像yindan/genshinhelper:latest,指定容器名为genshinhelper,将宿主机的/etc/genshin
目录挂载到容器目录/app/genshinhelper/config里(读取自定义配置文件),容器退出时重启容器

OPTIONS说明:

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  • -d: 进程守护模式运行容器,即后台运行容器,并返回容器ID;
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -P: 随机端口映射,容器内部端口随机映射到主机的端口
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • –name=”nginx-lb”: 为容器指定一个名称,这里为nginx-lb
  • –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  • –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  • -h “mars”: 指定容器的hostname
  • -e username=”ritchie”: 设置环境变量;
  • –env-file=[]: 从指定文件读入环境变量;
  • –cpuset=”0-2” or –cpuset=”0,1,2”: 绑定容器到指定CPU运行;
  • -m: 设置容器使用内存最大值;
  • –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container 四种类型;
  • –link=[]: 添加链接到另一个容器;
  • –expose=[]: 开放一个端口或一组端口;
  • –volume , -v: 将宿主机目录挂载到容器里,格式为=/宿主机目录:/容器目录
  • –restart: 设置容器的重启策略,以决定在容器退出时Docker守护进程是否重启刚刚退出的容器,策略见下文。

restart重启策略

  • no:容器退出时不要自动重启,这个是默认值
  • on-failure:在容器非正常退出时(退出状态非0),才会重启容器
  • on-failure[:max-retries]:当容器非正常退出超过设定的次数才会重启
  • always:不管退出状态码是什么,始终重启容器,当指定always时,docker daemon将无数次的重启容器,容器也会在daemon启动时尝试重启,不管容器的状态如何。
  • nuless-stopped:在容器退出时,总是重启,但不考虑在docker守护进程启动之时,就已经停止了的容器,