zoukankan      html  css  js  c++  java
  • 快速创建容器,容器常用命令

    容器是Docker的三大核心概念之一。简单地说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。通过这篇文章,我们来讲讲Docker容器的一些常用命令,如创建,停止,重启,暂停等等。

    原创声明

    本文发布于掘金号【Happyjava】。Happy的掘金地址:https://juejin.im/user/5cc2895df265da03a630ddca,Happy的个人博客:http://blog.happyjava.cn。欢迎转载,但须保留此段声明。

    创建容器

    新建容器

    命令如下:

    docker create <image>

    使用create 命令创建的容器,默认处于停止状态,需要我们手动去启动容器。

    新建并运行容器

    命令如下:

    docker run <image>

    通过run命令创建的容器,默认是会运行的。

    常用参数如下:

    -i 让容器的标准输入保持打开

    -t 分配一个伪终端

    -d 容器处于守护进程运行

    --name 设置容器的名字

    -p 可以映射宿主机端口至容器端口,如 -p 8080:8081 ,左边为宿主机端口,右边为容器端口

    -v 可以挂在宿主机目录至容器目录,如-v /data:/tmp/data,左边为宿主机目录,右边为容器目录

    如,一条实际运行容器的命令:

    docker run -it -d --name my_ubuntu -p 8088:22 -v /root/ubuntu_data:/data ubuntu:latest /bin/bash

    容器管理

    查看容器列表

    命令如下:

    docker ps 

    docker ps 是查看正在运行的容器,可以添加-a 参数,查看所有容器的信息。

    停止容器

    停止容器的命令:

    docker stop <container_name/id>

    启动容器

    docker start <container_name/id>

    重启容器

    docker restart <container_name/id>

    删除容器

    命令如下:

    docker rm <container_id/name>

    如果是正在运行的容器,会提示删除失败,可以通过 -f 参数强制删除。例如,删除正在运行的 my_ubuntu 容器:

    docker rm -f my_ubuntu
    

    容器日志

    可以通过如下命令查看容器的日志:

    docker logs <id/name>
    

    暂停容器

    docker pause <id/name>
    

    通过docker ps 命令可以查看到容器的状态

    恢复暂停的容器

    docker unpause <id/name>
    

    进入容器

    如果我们创建容器时,使用了 -d 参数,那么容器就会在后台运行。那么,我们可以通过 docker attach 命令和 docker exec 命令连接到容器。

    docker attach命令

    docker attach 命令使用如下:

    docker attach <container_name/id>
    

    如,我这里连接创建的名为 my_ubuntu 的容器。

    docker attach my_ubuntu
    

    进入容器后,其实就跟ssh登录服务器效果似乎一样的:

    docker attach连接容器,有一个致命的缺点,那就是当多个窗口同时attach到同一个容器时,所有窗口都会同步显示,当某个窗口阻塞了,那么所有的窗口都会被阻塞掉。例如,我通过两个终端attach到这个my_ubuntu容器,所有的操作都会被同步:

    我在一个窗口输入东西,另外一个窗口也会同步。

    也是因为这样,所以attach命令是比较少用的。

    docker exec 命令

    docker exec 本质上不是连接容器,而是在容器中执行命令,其用法如下:

    docker exec -it <container_name/id> <exec>
    

    其中<exec>是需要执行的命令,如在my_ubuntu容器下执行 /bin/bash 命令:

    docker exec -it my_ubuntu /bin/bash
    

    执行结果:

    /bin/bash 这个命令,其实就是运行一个bash终端,所以我们就可以通过在容器中执行 /bin/bash命令来连接容器。

    查看容器变更

    容器也是支持查看变更的内容的,命令如下:

    docker diff <name/id>
    

    如,查看my_ubuntu的变更:

    有三个符号,它们分别是:

    提交容器

    Docker也可以像git一样,可以把变动提交为新的镜像。命令如下:

    docker commit <container_id/name> repo/name:tag
    

    如,我把本地的my_ubuntu提交:

    docker commit my_ubuntu test/ubuntu:personal
    

    然后查看镜像:

    提交后的镜像,可以推送到仓库上,方便测试部署等。

    总结

    容器作为Docker的三大核心概念之一,其有很多操作,本文也难以一一列举,只是列举出了本人认为比较常用的一些命

  • 相关阅读:
    getParameter和getAttribute的区别
    forward和sendRedirect的区别
    关于html/css的路径问题
    手写ORM
    数据库其他使用方法介绍
    Navicat使用与python操作数据库
    表查询
    表与表之间的三种关系
    SQL语法
    MySQL数据库的安装与使用
  • 原文地址:https://www.cnblogs.com/wangsongbai/p/12381986.html
Copyright © 2011-2022 走看看