docker

作者: boboniao | 来源:发表于2018-05-16 17:16 被阅读0次

    安装
    sudo apt install docker.io
    sudo groupdel docker
    docker run hello-world

    docker proxy

    sudo mkdir -p /etc/systemd/system/docker.service.d

    sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
    写入: Environment="HTTP_PROXY=http://proxy.statestr.com:80/" "NO_PROXY=localhost,127.0.0.1"

    sudo systemctl daemon-reload

    systemctl show --property=Environment docker
    sudo systemctl restart docker
    docker run hello-world

    latest: Pulling from library/hello-world
    9bb5a5d4561a: Pull complete
    Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    To generate this message, Docker took the following steps:
     1. The Docker client contacted the Docker daemon.
     2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
        (amd64)
     3. The Docker daemon created a new container from that image which runs the
        executable that produces the output you are currently reading.
     4. The Docker daemon streamed that output to the Docker client, which sent it
        to your terminal.
    
    To try something more ambitious, you can run an Ubuntu container with:
     $ docker run -it ubuntu bash
    
    Share images, automate workflows, and more with a free Docker ID:
     https://hub.docker.com/
    
    For more examples and ideas, visit:
     https://docs.docker.com/engine/userguide/
    

    docker images hello-world

    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    hello-world         latest              e38bc07ac18e        4 weeks ago         1.85 kB
    

    docker 相关操作

    镜像

    docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
    

    对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像。\

    docker image ls                    #列出相关镜像
    docker image ls --digests          #镜像详细摘要
    
    
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    hello-world         latest              e38bc07ac18e        4 weeks ago         1.85 kB 
    

    其中size是 Docker Hub 解压后的大小。而且docker image ls 列表中的镜像体积总和并非是所有镜像实际硬盘消耗。由于 Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于 Docker 使用 Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间很可能要比这个列表镜像大小的总和要小的多。

    docker image rm [选项] <镜像1> [<镜像2> ...]                   #删除镜像
    

    容器

    docker run -it --rm ubuntu:16.04 bash        #交互方式运行容器 --rm参数表示容器退出就删除
    
    docker run --name [containerName] -d -p 80:80 [imageName]
    

    docker container ls #显示容器列表
    docker container ls -a #显示所有容器包括已经退出的和停止的

    docker exec -it webserver bash #容器交互 run 新创建,已经创建过的container里面用 exec

    docker diff webserver #显示容器存储层内容改变

    docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
    docker commit --author "Tianbo" --message "change docker index" webserver nginx:webserverv2

    
    ######慎用 docker commit
    当前层外,之前的每一层都是不会发生改变的,换句话说,任何修改的结果仅仅是在当前层进行标记、添加、修改,而不会改动上一层。如果使用 docker commit 制作镜像,以及后期修改的话,每一次修改都会让镜像更加臃肿一次,所删除的上一层的东西并不会丢失,会一直如影随形的跟着这个镜像,即使根本无法访问到。这会让镜像更加臃肿。

    相关文章

      网友评论

          本文标题:docker

          本文链接:https://www.haomeiwen.com/subject/ldopdftx.html