真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

docker容器使用方法

Docker容器

docker容器是另一個(gè)核心概念,容器是鏡像的一個(gè)運(yùn)行實(shí)例。不同的是鏡像是靜態(tài)的只讀文件,容器帶有運(yùn)行時(shí)需要的可寫層,并且容器中的應(yīng)用進(jìn)程處于運(yùn)行狀態(tài)。
虛擬機(jī)是模擬運(yùn)行一整套操作系統(tǒng),docker只運(yùn)行一個(gè)應(yīng)用和它的運(yùn)行環(huán)境。

成都創(chuàng)新互聯(lián)成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元寶塔做網(wǎng)站,已為上家服務(wù),為寶塔各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

創(chuàng)建容器

  1. 新建容器,docker [container] create命令新建的容器處于停止?fàn)顟B(tài)
    [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. 啟動(dòng)容器,docker [container] start命令來啟動(dòng)一個(gè)已經(jīng)創(chuàng)建的容器
    [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. 新建并啟動(dòng)容器,除了創(chuàng)建容器后通過start命令啟動(dòng),也可以直接新建并啟動(dòng)。docker [container] run
    [root@docker01 ~]# docker run ubuntu:18.04 /bin/echo 'hello'
    hello

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

    [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分配一個(gè)為終端(pseudo-tty)并綁定到容器的標(biāo)準(zhǔn)輸入上
    -i:讓容器的標(biāo)準(zhǔn)輸入保持打開

  4. 后臺(tái)運(yùn)行,更多的時(shí)候需要容docker容器在后臺(tái)以守護(hù)態(tài)(Daemonized)形式運(yùn)行
    [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...]
    在一個(gè)終端執(zhí)行
    [root@docker01 ~]# docker run --name test --rm -it ubuntu bash
    root@98eedc501dec:/# 

    另一個(gè)終端執(zhí)行,暫停

    [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

    恢復(fù)

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

    進(jìn)入容器

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

    [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版本后提供的一個(gè)更方便的工具,可以在運(yùn)行中容器內(nèi)直接執(zhí)行任何命令。
    docker exec [-d|--detach] [--detach-keys[=[]]] [-i|--interactive] [--privileged] [-t|--tty] [-u|--user[=USER]] CONAINER COMMAND [ARG...]
    -d  #在容器中后臺(tái)執(zhí)行命令
    --detach-keys=“ ”  #指定容器切回后臺(tái)的按鍵
    -e  #指定環(huán)境變量列表
    -i   #打開標(biāo)準(zhǔn)輸入接受用戶輸入命令,默認(rèn)為false
    --privileged=treu|false  #是否給執(zhí)行命令以最高權(quán)限,默認(rèn)false
    -t   #分配偽終端,默認(rèn)false
    -u  #執(zhí)行命令的用戶名或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

    此時(shí)會(huì)打開一個(gè)新的bash終端,不影響容器內(nèi)其他應(yīng)用的前提下,用戶與容器進(jìn)行交互。

    刪除容器

    可是使用docker [container] rm命令來刪除處于終止或退出狀態(tài)的容器。docker [container] rm [-f|--force] [-l|--link] [-v|--volumes] CONTIAINER
    -f  #是否強(qiáng)制終止并刪除一個(gè)運(yùn)行中的容器
    -l  #刪除容器的鏈接,但保留容器
    -v #刪除容器掛載的數(shù)據(jù)卷
    查看處于停止?fàn)顟B(tài)的容器,并刪除

    [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

    導(dǎo)出容器

    用于將容器從一個(gè)系統(tǒng)遷移到另外一個(gè)系統(tǒng),這時(shí)可以使用docker的導(dǎo)入和導(dǎo)出功能。
    1、 導(dǎo)出容器是指,導(dǎo)出一個(gè)已經(jīng)創(chuàng)建的容器到一個(gè)文件,不管此時(shí)容器是否處于運(yùn)行狀態(tài)。docker [container] export [-o|--output[=""]] CONTAINER
    -o #指定導(dǎo)出的tar文件名,也可以直接通過重定向來實(shí)現(xiàn)

    [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

    導(dǎo)入容器

    導(dǎo)出的文件可以使用docker [container] import 命令導(dǎo)入變成鏡像。docker import [-c|--change[=[]]] [-m|--message[=MESSAGE]] file|URL| -[REPOSITORY[:TAG]]
    -c #再倒入的同時(shí)執(zhí)行對(duì)容器進(jìn)行修改的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區(qū)別在于容器快照(docker import)將丟棄所有的的歷史記錄和元數(shù)據(jù)信息,僅保存容器當(dāng)時(shí)的快照狀態(tài)。鏡像存儲(chǔ)文件(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",

    查看某個(gè)容器的具體信息,會(huì)以json格式返回包括ID、創(chuàng)建時(shí)間、路徑、狀態(tài)、鏡像、配置等在內(nèi)的各項(xiàng)信息。
    2、查看容器內(nèi)的進(jìn)程,docker [container] top [OPTIONS] CONTAINER,類似于linux的top命令,包括PID、用戶、時(shí)間、命令等。必須是運(yùn)行狀態(tài)的容器才能查看

    [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、查看統(tǒng)計(jì)信息,docker [container] status [OPTIONS] [CONTAINER],會(huì)顯示CPU、內(nèi)存、存儲(chǔ)、網(wǎng)絡(luò)等使用情況的統(tǒng)計(jì)信息。
    -a,--all             #輸出所有容器統(tǒng)計(jì)信息,默認(rèn)僅在運(yùn)行中
    -format string  #格式化輸出信息
    -no-stream     #不持續(xù)輸出,默認(rèn)會(huì)自動(dòng)更新持續(xù)實(shí)時(shí)結(jié)果
    -no-trunc        #不截?cái)噍敵鲂畔?/p>

[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、復(fù)制文件
container cp支持在容器和主機(jī)之間復(fù)制文件,docker [container] cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
-a,-archive       #打包模式,復(fù)制文件會(huì)帶有原始的UID/GID信息
-L,-follow-link   #跟隨軟鏈接,當(dāng)原路徑為軟鏈接時(shí),默認(rèn)只復(fù)制鏈接信息,使用該選項(xiàng)會(huì)復(fù)制鏈接的目標(biāo)內(nèi)容。
將本都路徑oglab/python復(fù)制到容器的/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命令可以更新容器的一些運(yùn)行時(shí)配置,主要是一些資源限制份額。docker [container] update [OPTIONS] CONTAINER
限制總配額為1秒,容器所占用的時(shí)間為10%,單位微妙

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


本文題目:docker容器使用方法
本文鏈接:http://weahome.cn/article/iijhpi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部