围炉网

一行代码,一篇日志,一个梦想,一个世界

docker 使用笔记

  • docker容器展示

    • docker container ls

  • docker镜像展示

    • docker image ls

  • 在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:

    • docker run –restart=always

  • 如果已经启动了则可以使用如下命令:

    • docker update –restart=always <CONTAINER ID>

  • 查看docker容器的IP地址

    • docker inspect nginx-proxy | grep IPAddress 

  • 开启交互式终端

    • docker run -itd solidityflattener_solidityflattener /bin/bash

    • 在容器nginx-proxy中开启一个交互模式的终端

      • docker exec -i -t nginx-proxy /bin/bash

  • 容器退出时就能够自动清理容器内部的文件系统

    • 在 Docker 容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据。

    • 但是,对于 foreground 容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要,因而可以在容器启动时设置 –rm 选项,这样在容器退出时就能够自动清理容器内部的文件系统。

    • 示例如下:

    docker run –rm nginx

    • 等价于:

    docker run –rm=true nginx

    • 显然,–rm 选项不能与 -d 同时使用(或者说同时使用没有意义),即只能自动清理 foreground 容器,不能自动清理detached容器。

    • 注意,–rm 选项也会清理容器的匿名data volumes。

    • 所以,执行 docker run 命令带 –rm命令选项,等价于在容器退出后,执行 docker rm -v。

  • 镜像删除

    • 删除dangling image虚悬镜像

      • docker image prune

    • 删除所有仓库名为 redis 的镜像:

      • $ docker image rm $(docker image ls -q redis)

    • 删除所有在 mongo:3.2 之前的镜像:

      • $ docker image rm $(docker image ls -q -f before=mongo:3.2)

    • Docker 容器镜像删除

      • 1.停止所有的container,这样才能够删除其中的images:

        • docker stop $(docker ps -a -q)

        • 如果想要删除所有container的话再加一个指令:

        • docker rm $(docker ps -a -q)

      • 2.查看当前有些什么images

        • docker images

      • 3.删除images,通过image的id来指定删除谁

        • docker rmi <image id>

      • 想要删除untagged images,也就是那些id为<None>的image的话可以用

        • docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

      • 要删除全部image的话

        • docker rmi $(docker images -q)

  • docker volume

    • docker volume create my-vol

    • docker volume ls

    • docker volume inspect my-vol

    • docker volume rm $(docker volume ls -qf dangling=true)

  • 验证

    • $docker-compose config

  • 查看日志

    • $docker-compose logs -f

    • docker-compose -f docker-compose-standalone.yml up -d

    • docker-compose up -d –no-deps –build <service_name>

      • –no-deps – Don't start linked services.

      • –build – Build images before starting containers.

  • 编译

    • docker build -t wrdoclet-solr:v1 .

  • docker-compose down 失败时处理

$ docker-compose down
Removing network flume_default
ERROR: network flume_default id ad40df4b5b2d20a0c819128d223650fceacaf93a25ae2cd57ee6f84e8600a810 has active endpoints
$ docker network inspect flume_default
[
    {
        "Name": "flume_default",
        "Id": "ad40df4b5b2d20a0c819128d223650fceacaf93a25ae2cd57ee6f84e8600a810",
        "Created": "2018-01-14T12:30:31.738036197Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.25.0.0/16",
                    "Gateway": "172.25.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "0b2b3c07e182a7e64cbbcf4707d24aae617fd8dd6795804a7b6a3f3284f2420b": {
                "Name": "adamsleeflume",
                "EndpointID": "5ddf2d907add2a61c868cb7ed7ece2fe10978b9875cb9b21c09e5a0be23cb630",
                "MacAddress": "02:42:ac:19:00:02",
                "IPv4Address": "172.25.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "default",
            "com.docker.compose.project": "flume"
        }
    }
]
adams@DESKTOP-TAT8TOF MINGW64 ~/DockerWorkBench/flume
$ docker network disconnect -f flume_default adamsleeflume
adams@DESKTOP-TAT8TOF MINGW64 ~/DockerWorkBench/flume
$ docker-compose down
Removing network flume_default

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

沪ICP备15009335号-2