当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Linux中docker的使用方法讲解

    栏目:Linux/apache问题 时间:2019-10-17 09:28

    # 列出当前所有正在运行的容器
    $ docker ps
    
    # 列出所有的容器
    $ docker ps -a
    
    # 列出最近一次启动的容器
    $ docker ps -l
    
    # 查看容器的相关信息
    $ docker inspect $CONTAINER_ID

    删除某一个容器:

    docker rm 容器id

    =========================================================================

    当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:

    检查本地是否存在指定的镜像,不存在就从公有仓库下载
    利用镜像创建并启动一个容器
    分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
    从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
    从地址池配置一个 ip 地址给容器
    执行用户指定的应用程序
    执行完毕后容器被终止

    =========================================================

    查看系统中存在的镜像

    [root@izuf63bjp8ts8nkl13pxh1z ~]# docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    docker.io/centos latest 67591570dd29 12 weeks ago 191.8 MB

    ================================================================

    创建一个新的容器:

    docker run -i -t centos /bin/bash

    查看运行中的容器id:

    [root@izuf63bjp8ts8nkl13pxh1z /]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    71d5ec72a193 centos "/bin/bash" 56 minutes ago Up 56 minutes prickly_albattani
    0f72d2a74111 centos "/bin/bash" About an hour ago Up About an hour condescending_poitras

    在容器71d5ec72a193中修改文件。

    想要退出但不销毁,可以CTRL+p+q。这是容器71d5ec72a193还是在后台运行的。

    然后重新连接可以使用命令:

    docker attach 71d5ec72a193 

    或者是用下面命令:

    docker exec -it CONTAINER_ID /bin/bash 进入指定容器

    用exec 的话,则用exit退出后,不会被销毁。

    哪怕容器被销毁了,也可以重新进入:

    docker start 71d5ec72a193 
    docker attach 71d5ec72a193 

    =================================================

    构建镜像的两种方法:

    方法一.使用docker commit 命令

    方法二.使用docker build命令和Dockerfile文件

    方法一:

    [root@izuf63bjp8ts8nkl13pxh1z ~]# docker images --查看系统中目前有的镜像
    REPOSITORY TAG IMAGE ID CREATED SIZE
    docker.io/centos latest 67591570dd29 12 weeks ago 191.8 MB
    
    [root@izuf63bjp8ts8nkl13pxh1z ~]# docker commit 71d5ec72a193 docker.io/centos-fx01 --根据容器id=71d5ec72a193 创建一个镜像,创库是docker.io,新生成的镜像名是centos-fx01
    sha256:6f86477df3c7a929b2ca8d9eee32cf278302f5eccd51338927d351ab0f9066b4
    
    [root@izuf63bjp8ts8nkl13pxh1z ~]# docker images --查看系统中目前有的镜像,生成一个新的镜像centos-fx01成功
    REPOSITORY TAG IMAGE ID CREATED SIZE
    docker.io/centos-fx01 latest 6f86477df3c7 29 seconds ago 191.8 MB
    docker.io/centos latest 67591570dd29 12 weeks ago 191.8 MB
    
    [root@izuf63bjp8ts8nkl13pxh1z ~]# docker run -it centos-fx01 /bin/bash --用这个新建的镜像创建一个容器
    
    root@806b7e2c0201 /]# ls --新建的容器id=806b7e2c0201
    
    [root@izuf63bjp8ts8nkl13pxh1z ~]# docker ps -a --查看所有容器,可以看到容器id=806b7e2c0201 对于的镜像是centos-fx01 
    CONTAINER ID  IMAGE       COMMAND CREATED STATUS PORTS NAMES
    806b7e2c0201  centos-fx01    "/bin/bash" 57 seconds ago Exited (0) 6 seconds ago kickass_kare
    71d5ec72a193  centos        "/bin/bash" 3 hours ago Exited (0) 8 minutes ago prickly_albattani
    0f72d2a74111  centos        "/bin/bash" 3 hours ago Exited (0) About an hour ago condescending_poitras