91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker容器使用方法

發布時間:2020-05-23 17:15:48 來源:億速云 閱讀:209 作者:鴿子 欄目:系統運維

Docker容器

docker容器是另一個核心概念,容器是鏡像的一個運行實例。不同的是鏡像是靜態的只讀文件,容器帶有運行時需要的可寫層,并且容器中的應用進程處于運行狀態。
虛擬機是模擬運行一整套操作系統,docker只運行一個應用和它的運行環境。

創建容器

  1. 新建容器,docker [container] create命令新建的容器處于停止狀態
    [root@docker01 ~]# docker create -it ubuntu:18.04
    550c14d7db29b3fbcdff0819546403779f8ce717fa2a5012909b057c2f8b1806
    [root@docker01 ~]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
    550c14d7db29        ubuntu:18.04        "/bin/bash"         34 seconds ago      Created                                       kind_rosalind
  2. 啟動容器,docker [container] start命令來啟動一個已經創建的容器
    [root@docker01 ~]# docker start 55
    55
    [root@docker01 ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    550c14d7db29        ubuntu:18.04        "/bin/bash"         2 minutes ago       Up 5 seconds                            kind_rosalind
  3. 新建并啟動容器,除了創建容器后通過start命令啟動,也可以直接新建并啟動。docker [container] run
    [root@docker01 ~]# docker run ubuntu:18.04 /bin/echo 'hello'
    hello

    當執行完/bin/echo 'hello'后,容器會自動終止。
    當使用docker run來創建啟動容器時會包含:
    1、檢查本地是否存在指定鏡像,沒有就從公有倉庫下;
    2、利用鏡像創建一個容易,并啟動;
    3、分配一個文件系統給容器,并給只讀的鏡像外掛一個可讀寫層;
    4、從宿主機的網橋接口橋接一個虛擬機口到容器中;
    5、網橋地址池分配一個ip地址給容器;
    6、執行用戶應用;
    7、容器自動終止
    啟動一個bash終端,允許用戶進行交互

    [root@docker01 ~]# docker run -it ubuntu:18.04 /bin/bash
    root@4d99166324fb:/# pwd
    /
    root@4d99166324fb:/# ls
    bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
    boot  etc  lib   media  opt  root  sbin  sys  usr

    -t:為docker分配一個為終端(pseudo-tty)并綁定到容器的標準輸入上
    -i:讓容器的標準輸入保持打開

  4. 后臺運行,更多的時候需要容docker容器在后臺以守護態(Daemonized)形式運行
    [root@docker01 ~]# docker run -d ubuntu:18.04 /bin/bash -c "while true;do echo 'hello';sleep 1;done"
    [root@docker01 ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    a5d805944192        ubuntu:18.04        "/bin/sh -c 'while t…"   4 seconds ago       Up 3 seconds                            frosty_joliot
  5. 查看容器輸出,docker [container] logs
    [root@docker01 ~]# docker logs a5d805944192
    hello
    hello
    hello
    ...

    停止容器

  6. 暫停容器,docker [container] pause CONTAINER [CONTAINER...]
    在一個終端執行
    [root@docker01 ~]# docker run --name test --rm -it ubuntu bash
    root@98eedc501dec:/# 

    另一個終端執行,暫停

    [root@docker01 ~]# docker pause test
    test
    [root@docker01 ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                  PORTS               NAMES
    98eedc501dec        ubuntu              "bash"                   2 minutes ago       Up 2 minutes (Paused)                       test

    恢復

    [root@docker01 ~]# docker unpause test
    test
  7. 終止容器
    [root@docker01 ~]# docker stop test
    test
  8. 重起容器
    [root@docker01 ~]# docker restart test
    test

    進入容器

    如果需要進入容器進行操作,推薦使用官方的attach或exec命令。
    attach的命令格式為:
    docker attach [--detach-key[=[]]]  [--no-stdin]  [--sig-proxy[=true]] CONTAINER
    -detach-key[=[]]   #指定退出attach模式的快捷鍵,默認是CTRL+p  CTRL+q;
    --no-stdin=true|false    #是否關閉標準輸入,默認是保持打開;
    --sig-proxy=treu|false  #是否代理收到的系統信號給應用程序,默認打開;

    [root@docker01 ~]# docker run -itd ubuntu:18.04
    b82dba0090bcb85fafdeef03e67f9973426965f2792efae73de1c07eb0b44bc2
    [root@docker01 ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    b82dba0090bc        ubuntu:18.04        "/bin/bash"         52 seconds ago      Up 50 seconds                           fervent_maxwell
    [root@docker01 ~]# docker attach fervent_maxwell
    root@b82dba0090bc:/# 

    exec是1.3.0 docker版本后提供的一個更方便的工具,可以在運行中容器內直接執行任何命令。
    docker exec [-d|--detach] [--detach-keys[=[]]] [-i|--interactive] [--privileged] [-t|--tty] [-u|--user[=USER]] CONAINER COMMAND [ARG...]
    -d  #在容器中后臺執行命令
    --detach-keys=“ ”  #指定容器切回后臺的按鍵
    -e  #指定環境變量列表
    -i   #打開標準輸入接受用戶輸入命令,默認為false
    --privileged=treu|false  #是否給執行命令以最高權限,默認false
    -t   #分配偽終端,默認false
    -u  #執行命令的用戶名或ID

    [root@docker01 ~]# docker exec -it f2554976971b /bin/bash
    root@f2554976971b:/# w
    08:02:18 up 2 days, 18:58,  0 users,  load average: 0.03, 0.03, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root@f2554976971b:/# ps -ef
    UID        PID  PPID  C STIME TTY          TIME CMD
    root         1     0  0 08:01 pts/0    00:00:00 /bin/bash
    root        10     0  0 08:02 pts/1    00:00:00 /bin/bash
    root        20    10  0 08:02 pts/1    00:00:00 ps -ef

    此時會打開一個新的bash終端,不影響容器內其他應用的前提下,用戶與容器進行交互。

    刪除容器

    可是使用docker [container] rm命令來刪除處于終止或退出狀態的容器。docker [container] rm [-f|--force] [-l|--link] [-v|--volumes] CONTIAINER
    -f  #是否強制終止并刪除一個運行中的容器
    -l  #刪除容器的鏈接,但保留容器
    -v #刪除容器掛載的數據卷
    查看處于停止狀態的容器,并刪除

    [root@docker01 ~]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
    f2554976971b        ubuntu:18.04        "/bin/bash"              46 hours ago        Up 46 hours                                     focused_joliot
    b82dba0090bc        ubuntu:18.04        "/bin/bash"              47 hours ago        Exited (0) 46 hours ago                         fervent_maxwell
    [root@docker01 ~]# docker rm b82dba0090bc
    b82dba0090bc

    導出容器

    用于將容器從一個系統遷移到另外一個系統,這時可以使用docker的導入和導出功能。
    1、 導出容器是指,導出一個已經創建的容器到一個文件,不管此時容器是否處于運行狀態。docker [container] export [-o|--output[=""]] CONTAINER
    -o #指定導出的tar文件名,也可以直接通過重定向來實現

    [root@docker01 docker]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS               NAMES
    f2554976971b        ubuntu:18.04        "/bin/bash"              47 hours ago        Up 47 hours                                   focused_joliot
    a5d805944192        ubuntu:18.04        "/bin/sh -c 'while t…"   2 days ago          Exited (137) 2 days ago                       frosty_joliot
    [root@docker01 docker]# docker export  a5d805944192 > test_ubuntu2.tar
    [root@docker01 docker]# docker export -o test_ubuntu.tar a5d805944192
    [root@docker01 docker]# ls
    test_ubuntu2.tar  test_ubuntu.tar

    導入容器

    導出的文件可以使用docker [container] import 命令導入變成鏡像。docker import [-c|--change[=[]]] [-m|--message[=MESSAGE]] file|URL| -[REPOSITORY[:TAG]]
    -c #再倒入的同時執行對容器進行修改的Dockerfile指令

    [root@docker01 docker]# docker import test_ubuntu.tar  test111/ubuntu:v1.0
    sha256:6c5cd99408ca4648c4d3e5560280e75633e3fbcfdba2778d1b69e4353fb27cc9
    [root@docker01 docker]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    test111/ubuntu      v1.0                6c5cd99408ca        13 seconds ago      64.2M

    注:docker load和docker import區別在于容器快照(docker import)將丟棄所有的的歷史記錄和元數據信息,僅保存容器當時的快照狀態。鏡像存儲文件(docker load)將保存完整記錄,體積更大。

    查看容器

    1、查看容器詳情,docker container inspect [OPTIONS] ONTAINER

    [root@docker01 docker]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS               NAMES
    f2554976971b        ubuntu:18.04        "/bin/bash"              47 hours ago        Up 47 hours                                   focused_joliot
    [root@docker01 docker]# docker container inspect frosty_joliot
    [
    {
        "Id": "a5d8059441922d3157d2af1d0ab0a724acf13fbe8bb60ddb92fa2536620c2f84",
        "Created": "2020-03-05T05:50:37.692124654Z",
        "Path": "/bin/sh",
        "Args": [
            "-c",
            "while true;do echo hello;sleep 1;done"
        ],
        "State": {
            "Status": "exited",

    查看某個容器的具體信息,會以json格式返回包括ID、創建時間、路徑、狀態、鏡像、配置等在內的各項信息。
    2、查看容器內的進程,docker [container] top [OPTIONS] CONTAINER,類似于linux的top命令,包括PID、用戶、時間、命令等。必須是運行狀態的容器才能查看

    [root@docker01 docker]# docker top focused_joliot
    UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
    root                12365               12348               0                   Mar05               pts/0               00:00:00            /bin/bash
    root                12431               12348               0                   Mar05               pts/1               00:00:00            /bin/bash

    3、查看統計信息,docker [container] status [OPTIONS] [CONTAINER],會顯示CPU、內存、存儲、網絡等使用情況的統計信息。
    -a,--all             #輸出所有容器統計信息,默認僅在運行中
    -format string  #格式化輸出信息
    -no-stream     #不持續輸出,默認會自動更新持續實時結果
    -no-trunc        #不截斷輸出信息

[root@docker01 docker]# docker stats focused_joliot

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
f2554976971b        focused_joliot      0.00%               824KiB / 15.51GiB   0.01%               648B / 0B           0B / 0B             2

其他容器命令

1、復制文件
container cp支持在容器和主機之間復制文件,docker [container] cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
-a,-archive       #打包模式,復制文件會帶有原始的UID/GID信息
-L,-follow-link   #跟隨軟鏈接,當原路徑為軟鏈接時,默認只復制鏈接信息,使用該選項會復制鏈接的目標內容。
將本都路徑oglab/python復制到容器的/tmp路徑下

[root@docker01 oglab]# docker cp Python-3.8.2 focused_joliot:/tmp

2、查看變更

[root@docker01 oglab]# docker container diff focused_joliot
A /tmp/Python-3.8.2/Lib/test/test_asyncio/test_streams.py
A /tmp/Python-3.8.2/Lib/test/test_asyncio/test_transports.py
A /tmp/Python-3.8.2/Lib/test/test_asyncio/__init__.py
A /tmp/Python-3.8.2/Lib/test/test_asyncio/echo.py
A /tmp/Python-3.8.2/Lib/test/test_asyncio/test_queues.py
A /tmp/Python-3.8.2/Lib/test/test_distutils.py
A /tmp/Python-3.8.2/Lib/test/test_posixpath.py
A /tmp/Python-3.8.2/Lib/test/test_subclassinit.py
A /tmp/Python-3.8.2/Lib/test/xmltestdata
...

3、查看端口映射,container port命令可以查看容器的端口映射情況,docker container port CONTAINER [PRIVATE_PORT[/PROTO]]

[root@docker01 oglab]# docker container port focused_joliot

4、更新配置,container update命令可以更新容器的一些運行時配置,主要是一些資源限制份額。docker [container] update [OPTIONS] CONTAINER
限制總配額為1秒,容器所占用的時間為10%,單位微妙

[root@docker01 oglab]# docker update --cpu-quota 1000000 f2554976971b
f2554976971b
[root@docker01 oglab]# docker update --cpu-period 1000000 f2554976971b
f2554976971b

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

济南市| 康马县| 平江县| 上饶市| 开封市| 仙游县| 无锡市| 桃园县| 福泉市| 林芝县| 增城市| 巴林右旗| 叶城县| 黔南| 高要市| 巍山| 深圳市| 长武县| 罗山县| 依安县| 元氏县| 宁陵县| 杂多县| 望都县| 漳浦县| 阜南县| 松滋市| 射洪县| 镇宁| 牟定县| 志丹县| 南溪县| 通城县| 海门市| 通州区| 福清市| 观塘区| 金堂县| 新巴尔虎左旗| 江阴市| 达孜县|