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
相關文章
相關標籤/搜索