美文网首页
《第一本Docker书》笔记

《第一本Docker书》笔记

作者: Azur_wxj | 来源:发表于2019-11-14 20:40 被阅读0次

    初步

    确认Docker信息:

    docker info
    

    镜像

    查看镜像

    docker images
    

    镜像搜索

    docker search ubuntu
    

    获取镜像

    docker pull ubuntu
    

    构建镜像

    • docker commit
    • DockerFile

    容器

    创建容器

    可交互式容器

    启动可交互式容器:

    docker run -i -t ubuntu /bin/bash
    
    1. -t -i标志保证了启动的容器是一个可交互式的:-i标志保证容器中STDIN 是开启的;-t说明创建的容器分配一个伪tty终端。
    2. ubuntu表示一个基础镜像,容器是基于此创建的
    3. /bin/bash表示容器启动后将运行怎样的命令

    守护式容器

    守护式容器类似于后台进程或服务,不像是一个前台会话进程需要时刻等待键盘输入命令进行交互式会话。

    docker run --name you_container_name -d  ubuntu .... 
    

    使用-d来指示该容器是一个守护石(运行于后台的)容器。

    容器的命名

    docker run --name your_container_name -it ubuntu /bin/bash
    

    给容器命名(名称为your_container_name),此后可以用容器名来代替容器,因此容器名必须是唯一的。如果没有指定容器名,则会随机分配一个容器名。

    挂载本地目录到容器之中

    docker run -it -v /host/dir:/container/dir ubuntu64 /bin/bash
    
    • 通过-v参数,冒号前为宿主机目录,必须为绝对路径;冒号后为镜像内挂载的路径。
    • 默认挂载的路径权限为读写。如果指定为只读可以用:ro标签,即-v /host/dir:/container/dir:ro

    查看容器

    docker ps -a
    

    其中-a选项表示显示所有容器,包括停止和正在运行的;若无此项,表示只显示正在运行的容器。

    docker ps -l
    

    列出最后一次运行的容器。

    docker ps -n 5
    

    列出最后(使用的)5个容器,不管是正在运行还是已经停止。这里5可以指定为别的数字。

    docker insepct your_container_name
    

    表示获取容器详细信息,包括配置信息、名称、命令、网络配置等,以JSON格式。

    启动容器

    启动已经停止的容器

    docker start your_container_name
    

    可以使用容器名或者容器ID来指代该容器。容器ID只要输入足以确定该容器的数字位数即可。
    也可以使用:

    docker restart your_container_name
    

    注意!
    使用docker start命令只是启动了容器,并且会沿用当时docker run命令时指定的参数来运行。假若参数指定容器启动时是可交互的shell界面,docker start无法切换到shell界面,还需要使用docker attach命令来切换

    容器附着

    Docker容器重新启动的时候, 会沿用docker run命令时指定的参数来运行, 因此,如果我们容器重新启动后是运行一个交互式会话shell,则要用docker attach命令, 重新附着到该容器的会话上:

    docker attach your_container_name
    

    容器的自动重启

    由于某种错误而导致容器停止运行,我们希望创建的容器可以按照指定的方式来自动重启

    docker run --restart=always  --name your_container_name -d ubuntu ...
    
    • 关键是选项--restart=always,表示无论容器的退出代码是什么(包括成正常退出,退出代码0), Docker都会自动重启该容器。
    • 还可以将这个标志设为--restart=on-failure, 这样, 只有当容器的退出代码为非0值的时候,才会自动重启。
    • --restart=on-failure:5表示当容器退出代码为非0时, Docker 会尝试自动重启该容器, 最多重启5 次。

    容器内进程的操作

    查看正在运行的容器内的进程

    docker top yout_container_name
    

    在容器内启动新进程

    在Docker命令行界面可以直接命令某个容器启动一个新的进程

    docker exec -d your_container_name touch /etc/new_config_file
    

    这表示,使命为your_container_name的正在运行的容器执行命令touch /etc/new_config_file(即启动进程执行命令)。-d表示这个进程是后台进程

    docker exec -t -i your_container_name /bin/bash
    

    表示在your_container_name容器内部启动一个进程/bin/bash-i -t(或者合起来-it)指示是一个可交互进程。

    容器的停止

    docker stop your_container_name
    
    docker kill your_container_name
    

    docker stop会向Docker容器进程发送SIGTERM信号。如果想快速停止某个容器,也可以使用docker kill命令来向容器进程发送SIGKILL信号。

    删除容器

    docker rm your_container_name
    

    注意!正在运行中的容器是无法删除的。

    可以使用以下命令一次性删除所有的容器

    docker rm `docker ps -a -q`
    

    -a标志代表列出所有(all)容器,而-q标志则表示只需要返回容器的ID而 不会 返回容器的其他信息。

    相关文章

      网友评论

          本文标题:《第一本Docker书》笔记

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