docker容器操做

Docker容器操做
容器是镜像的一个运行实例。所不一样的是,镜像是静态的只读文件,而容器带有运行时须要的可写文件层。若是认为虚拟机是模拟运行的一整套操做系统(包括内核、应用运行态环境和其余系统环境)和跑在上面的应用,那么Docker容器就是独立运行的一个(或一组)应用,以及它们必需的运行环境。web


建立容器docker

对容器进行操做就跟直接操做应用同样简单、快速。Docker容器实在过轻量级了,用户能够随时建立或删除容器。bash

1.新建容器tcp

可使用docker create命令新建一个容器,例如:ide

$ docker create -it 镜像名:标签   //基于镜像建立容器,默认是没有运行的spa

$ docker ps -a   //查看全部容器操作系统

使用docker create命令新建的容器处于中止状态,可使用docker start命令来启动它。image.png3d


2 启动容器orm

使用docker start命令来启动一个已经建立的容器:blog

docker start 容器ID       //开启容器

docker stop 容器ID       //关闭容器

image.png

这里要注意的是:docker start 后面加的是容器的ID   

启动之后状态变为Up启动状态。


docker容器的状态:
up   开启状态
Exited    终止状态
Create    建立状态
(Paused)   暂停状态
状态没有        中止状态

docker pause/unpause 容器ID  //暂停docker容器与取消暂停docker容器

删除:docker rm -f  容器名(ID)

image.png

新建并启动容器

除了建立容器后经过start命令来启动,也能够直接新建并启动容器。所须要的命令主要为docker run,等价于先执行docker create命令,再执行docker start命令。


docker run 容器名 /bin/bash -c ls /
//建立容器的同时启动并运行相关程序,命令完成容器就中止。

image.png


启动一个bash终端,容许用户进行交互:

docker run -it  镜像ID:标签  /bin/bash

image.png

其中,-t选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上,-i则让容器的标准输入保持打开。

更多的命令选项能够经过man docker-run命令来查看。在交互模式下,用户能够经过所建立的终端来输入命令。

守护态运行

更多的时候,须要让Docker容器在后台以守护态(Daemonized)形式运行。此时,能够经过添加-d参数来实现。

下面的命令会在后台运行容器:

docker run -d 镜像ID  /bin/sh -c "while true; do echo hello world; sleep 1; done"

image.png

进入运行中的容器中,对容器作各类操做:
docker exec -it 容器id  /bin/bash    进入容器中
退出方法:
一、输入exit
二、Ctrl+p, Ctrl+q键返回主机控制台

image.png

链接到容器的会话   
docker attach 容器id号

image.png

注:链接的前提是你要有这个容器

//将容器导出成文件
docker export ed2e7380ef05 > httpd
将指定容器导出成名为httpd的文件,该文件为docker镜像文件

image.png

//将容器文件生成镜像
docker import  文件名  镜像名:标签

image.png

//删除容器
docker rm 容器ID  指定删除某个容器
docker rm -f 容器ID  强制删除运行中的容器,不建议
docker container prune   删除全部中止的容器
docker rm $(docker ps -qf status=exited)    删除指定状态的容器

image.png

//查看容器的详细信息

docker inspect  容器ID      

image.png

这里要知道的是:

假设:  你须要查看容器的IP地址或者一些其余信息  能够采用inspect 过滤

"NetworkSettings": {

            "Bridge": "",
            "SandboxID": "59749f7b612c0dea54dd92962ca38d0b7b822b72099c36e5403dc42b6ba4a5c5",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "80/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/59749f7b612c",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "d59586ccdb378dcca52dc0c141732e325833740cb1575aaf41efa8c0c80886d6",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "271a491425a1f921004e6de6c03d77873a8e11da916bca36a8efc21ca49eb712",
                    "EndpointID": "d59586ccdb378dcca52dc0c141732e325833740cb1575aaf41efa8c0c80886d6",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02"
                }
            }
        }
    }
]

image.png

相关文章
相关标签/搜索