docker--(4)容器

简单的说,容器是镜像的一个运行实例。
#1.建立容器
使用命令docker create 镜像名,就能够建立一个容器。以下docker

[root@localhost /]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
panda30/test        latest              ace789a750cc        28 hours ago        129.5 MB
test                latest              ace789a750cc        28 hours ago        129.5 MB
docker.io/ubuntu    latest              f49eec89601e        5 weeks ago         129.5 MB
[root@localhost /]# docker create test
WARNING: IPv4 forwarding is disabled. Networking will not work.
7db543feb4ad4c7ae9f730247630925cc0427b4e9376e60bba396b47929e111a
[root@localhost /]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
7db543feb4ad        test                "/bin/bash"         26 seconds ago      Created                                       tiny_goodall
8dfe0092b0d5        ubuntu              "/bin/bash"         28 hours ago        Exited (0) 28 hours ago                       peaceful_shannon
[root@localhost /]#

使用docker create建立的容器,处于中止状态,可使用docker start来启动它,以下ubuntu

[root@localhost /]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
7db543feb4ad        test                "/bin/bash"         26 seconds ago      Created                                       tiny_goodall
8dfe0092b0d5        ubuntu              "/bin/bash"         28 hours ago        Exited (0) 28 hours ago                       peaceful_shannon
[root@localhost /]# docker start 8dfe0092b0d5
8dfe0092b0d5
[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8dfe0092b0d5        ubuntu              "/bin/bash"         28 hours ago        Up 4 seconds                            peaceful_shannon
[root@localhost /]#

启动容器有两种方式:
1.基于镜像新建一个容器并启动。
2.将终止状态的容器启动。 docker run命令等价于先执行docker create命令,再执行docker start命令。bash

[root@localhost /]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
panda30/test        latest              ace789a750cc        29 hours ago        129.5 MB
test                latest              ace789a750cc        29 hours ago        129.5 MB
docker.io/ubuntu    latest              f49eec89601e        5 weeks ago         129.5 MB
[root@localhost /]# docker run -it test
WARNING: IPv4 forwarding is disabled. Networking will not work.
root@0ee8b3307faf:/# exit

利用docker run来建立并启动容器时,docker在后台执行的操做包括
1.检查本地是否存在指定镜像,不存在就从公有仓库下载。
2.利用镜像建立并启动一个容器。
3.在镜像层外挂载一个可读写层。
4.从宿主机中配置的网桥接口中 桥接一个虚拟接口到容器中。
5.分配一个ip给容器。
6.执行用户指定的应用程序。
7.执行完毕后容器被终止。ui

[root@localhost /]# docker run -it test
WARNING: IPv4 forwarding is disabled. Networking will not work.
root@0ee8b3307faf:/# exit

-i 选项,让容器的标准输入保持打开。
-t 选项,让docker分配一个终端并绑定到容器的标准输入上。
在交互模式下,用户能够经过终端来输入命令,以下code

[root@localhost /]# docker run -it test
WARNING: IPv4 forwarding is disabled. Networking will not work.
root@56e2ed11db5c:/# pwd
/
root@56e2ed11db5c:/# ps
  PID TTY          TIME CMD
    1 ?        00:00:00 bash
    9 ?        00:00:00 ps
root@56e2ed11db5c:/#

在容器内使用ps命令查看进程,能够看到只运行了bash应用。
咱们能够输入exit命令来退出容器,以下接口

root@56e2ed11db5c:/# exit
exit
[root@localhost /]#

#2.中止/启动容器进程

[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost /]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
8dfe0092b0d5        ubuntu              "/bin/bash"         2 weeks ago         Exited (0) 25 seconds ago                       peaceful_shannon
[root@localhost /]# docker start 8dfe0092b0d5
8dfe0092b0d5
[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8dfe0092b0d5        ubuntu              "/bin/bash"         2 weeks ago         Up 4 seconds                            peaceful_shannon
[root@localhost /]# docker stop 8dfe0092b0d
8dfe0092b0d
[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost /]#

#3.进入容器ip

[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8dfe0092b0d5        ubuntu              "/bin/bash"         2 weeks ago         Up 4 seconds                            peaceful_shannon
[root@localhost /]# docker exec -it 8dfe0092b0d5
/usr/bin/docker-current: "exec" requires a minimum of 2 arguments.
See '/usr/bin/docker-current exec --help'.

Usage:	docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Run a command in a running container
[root@localhost /]# docker exec -it 8dfe0092b0d5 /bin/bash
root@8dfe0092b0d5:/#

#4.删除容器
可使用 docker rm [参数] 容器 [参数] 命令
参数:-f,强制终止并删除一个运行中的容器it

[root@localhost /]# docker exec -it 8dfe0092b0d5 /bin/bash
root@8dfe0092b0d5:/# exit
exit
[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8dfe0092b0d5        ubuntu              "/bin/bash"         2 weeks ago         Up 11 minutes                           peaceful_shannon
[root@localhost /]# docker rm -f 8dfe0092b0d5
相关文章
相关标签/搜索