docker鏡像文件的制作,並實現nginx的鏡像制作


一、基於容器制作鏡像

  • 在容器中完成操作后制作;

  • 制作命令:docker commit

格式:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
--author, -a 作者信息
--pause, -p 制作時候暫停
--message, -m 創建時候注釋
--change, -c 創建時應用dockerfile中的命令

示例:制作一個帶有httpd服務的鏡像
[root@node-65 ~]# docker run --name b1 -it docker.io/busybox #創建網頁目錄 / # mkdir /data/html -pv created directory: '/data/' created directory: '/data/html' / # vi /data/html/index.html <h1>BUSY BOX SERVER<h1> #啟動httpd服務 / # httpd -h /data/html/ / # netstat -tnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 :::80 :::* LISTEN #基於bi容器制作鏡像 [root@node-65 ~]# docker commit -p -a "hehe <hehe@hehe.com>" b1 docker.io/hehe/bbox:v0.1.1-httpd 或者使用-c選項指定網頁路徑 [root@node-65 ~]# docker commit -p -a "hehe <hehe@hehe.com>" -c 'CMD ["/bin/httpd","-f","-h","/data/html"]' b1 docker.io/hehe/bbox:v0.1.2-httpd #查詢本地鏡像 [root@node-65 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/hehe/bbox v0.1.1-httpd 786bd69b3a86 49 seconds ago 1.15 MB docker.io/busybox latest 758ec7f3a1ee 3 days ago 1.15 MB #使用生成的鏡像創建一個容器 [root@node-65 ~]# docker run --name h1 -d docker.io/hehe/bbox:v0.1.1-httpd /bin/httpd -f -h /data/html 如果指定網頁路徑使用: [root@node-65 ~]# docker run --name h1 -d docker.io/hehe/bbox:v0.1.1-httpd #查詢h1容器ip等信息 [root@node-65 ~]# docker inspect h1 ............. "IPAddress": "172.17.0.3" #使用curl命令,測試容器啟動,http服務是否一起啟動 [root@node-65 ~]# curl http://172.17.0.3 <h1>BUSY BOX SERVER<h1> 
示例2:配置一個nginx鏡像,啟動容器使nginx工作在前台
#下載centos鏡像 [root@node-65 ~]# docker pull docker.io/centos #使用centos鏡像啟動容器 [root@node-65 ~]# docker run --name c1 -it docker.io/centos #報錯 WARNING: IPv4 forwarding is disabled. Networking will not work. #打開宿主機的核心轉發功能 net.ipv4.ip_forward=1 >> /usr/lib/sysctl.d/00-system.conf #重啟網絡 #再次使用centos鏡像啟動容器 [root@node-65 ~]# docker run --name c2 -it docker.io/centos #安裝epel源和nginx [root@f68abe0c2601 /]# yum install epel-release -y root@f68abe0c2601 /]# yum install nginx -y #配置nginx文件,添加 [root@f68abe0c2601 /]# vi /etc/nginx/nginx.conf ........... user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; daemon off; #添加,使nginx工作在前台 #測試啟動nginx [root@f68abe0c2601 /]# nginx #此時光標停止,證明nginx已經工作在前台了 #制作鏡像 [root@node-65 ~]# docker commit -p -a "hehe <hehe@hehe.com>" -c 'CMD ["/usr/sbin/nginx"]' c2 docker.io/hehe/centos:v0.1.0-nginx sha256:6aadb46a288a0907fb2dd4b395ad066c00cbd52b9f84051b6245f269e0404c5a [root@node-65 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/hehe/centos v0.1.0-nginx 6aadb46a288a 46 seconds ago 395 MB ##使用生成的鏡像創建一個容器,-d運行在后台 [root@node-65 ~]# docker run --name h2 -d docker.io/hehe/centos:v0.1.0-nginx 20b666c4a0aa6b1ef561c66606cf94587b3fc1535131cb3e13ddb3efee28cb17 [root@node-65 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 20b666c4a0aa docker.io/hehe/centos:v0.1.0-nginx "/usr/sbin/nginx" 15 seconds ago Up 14 seconds h2 #查詢容器ip信息 [root@node-65 ~]# docker inspect ........ "IPAddress": "172.17.0.3", #測試nginx [root@node-65 ~]# curl http://172.17.0.3 nginx測試頁信息 ......... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> .......... 

二、 基於鏡像文件Dockerfile制作

  • Dockerfile是使用源代碼構建docker的鏡像,編輯一個Dockerfile,而后根據此文件制作;
     * docker可以自動通過讀取Dockerfile中的指令,自動構建鏡像。
    • Dockerfile是一個文本文檔包含所有用戶的命令,可以在命令行上調用組建一個鏡像。
    • 使用docker build命令的用戶可以讀取docker file中的連續指令,自動構建一個鏡像。

1、制作格式

格式
  • 指令有次序,第一個指令必須是'FROM',基於那個base image(基礎鏡像)制作。
      # Comment       #首行注釋信息
      INSTRUCTION arguments   #指令一般使用大寫字母
環境變量ENV
  • 設置變量,在容器啟動時變量傳遞到容器中選項,使容器適用於多種環境應用。
  • 變量格式:使用syntax語法格式,支持bash修飾符
#變量格式
$variable_name or ${variable_name}

#判斷
${variable:-word}   #variable變量非空且有值,就用本身的值,否則就賦值為word(給變量設置默認值)
${variable:+word}   #variable變量非空且有值,就賦值為word,如果無值則不賦值
.dockerignore路徑使用
  • .dockerignore目錄一般放在構建根目錄目錄中,作用是存放不被打包到鏡像中的文件。
  • 構建鏡像時,首先查詢 並排除.dockerignore目錄中的文件,然后打包鏡像,這里支持全局通配符使用,例如“*”號。

2、制作指令

FROM
  • FROM指令是最重的一個且必須為Dockerfile文件開篇的第一個非注釋行,用於為映像文件構建過程指定基准鏡像,后續的指令運行於此基准鏡像所提供的運行環境。
  • 實踐中,基准鏡像可以是任何可用鏡像文件,默認情況下,docker build會在docker主機上查找指定的鏡像文件,在其不存在時,則會從Docker Hub Registry上拉取所需的鏡像文件。
  • 如果找不到指定的鏡像文件,docker build會返回一個錯誤信息

Syntax語法格式
FROM <image>[:<tag>] 或
FROM <image>@<digest>
<image>:指定作為base image的名稱;
<tag>:base image的標簽,為可選項,省略時默認為latest;

MAINTANIER
  • 用於讓鏡像制作者提供本人的詳細信息
  • Dockerfile並不限制MAINTAINER指令可在出現的位置,但推薦將其放置於FROM指令之后

Syntax語法格式
MAINTAINER <authtor's detail>
<author's detail>可是任何文本信息,但約定俗成地使用作者名稱及郵件地址

COPY
  • 用於從Docker主機復制文件至創建的新映像文件

Syntax語法
COPY <src> ... <dest> 或
COPY ["<src>",... "<dest>"]
<src>:要復制的源文件或目錄,支持使用通配符
<dest>:目標路徑,即正在創建的image的文件系統路徑;建議為<dest>使用絕對路徑,否則,COPY指定則以WORKDIR為其起始路徑;
注意:在路徑中有空白字符時,通常使用第二種格式

文件復制准則
  • <src>必須是build上下文中的路徑,不能是其父目錄中的文件
  • 如果<src>是目錄,則其內部文件或子目錄會被遞歸復制,但<src>目錄自身不會被復制
  • 如果指定了多個<src>,或在<src>中使用了通配符,則<dest>必須是一個目錄,且必須以/結尾
  • 如果<dest>事先不存在,它將會被自動創建,這包括其父目錄路徑
    示例:
#查看已有鏡像 [root@node-65 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ......... docker.io/busybox latest 758ec7f3a1ee 6 days ago 1.15 MB ........ #創建工作目錄 [root@node-65 ~]# mkdir bbox [root@node-65 ~]# cd bbox/ #編輯要拷貝的文件 [root@node-65 bbox]# vim index.html #編輯dockerfile文件 [root@node-65 bbox]# vim dockerfile FROM busybox:latest #基於那個鏡像 MAINTAINER "hehe <hehe@hehe.com>" #作者信息 COPY index.html /data/html/ #執行命令,目標文件目錄不存在會自動創建 COPY data /data/ #當復制目錄時注意,只遞歸復制data目錄下所有文件,不復制data目錄本身,/data/為容器中自動創建目錄。 #構建鏡像 [root@node-65 bbox]# docker build ./ -t docker.io/busybox:v0.2.0 #指明構建的根目錄,有dockerfile的就是構建根目錄,-t指明tag標簽 Sending build context to Docker daemon 3.072 kB Step 1/3 : FROM busybox:latest #執行指令第一行,構建第一層鏡像 ---> 758ec7f3a1ee Step 2/3 : MAINTAINER "hehe <hehe@hehe.com>" #執行指令第二行,構建第二層鏡像 ---> Running in f5fc881f9f93 ---> b3e8146d6485 Removing intermediate container f5fc881f9f93 Step 3/3 : COPY index.html /data/html/ #執行指令第三行,構建第三層鏡像 6e71f53ff091 Removing intermediate container 03f483f87c98 Successfully built 6e71f53ff091 #構建成功 #查詢鏡像 [root@node-65 bbox]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/busybox v0.2.0 6e71f53ff091 16 minutes a 
ADD
  • ADD指令類似於COPY指令,ADD支持使用TAR文件和URL路徑

Syntax語法格式
ADD <src> ... <dest> 或
ADD ["<src>",... "<dest>"]

操作准則
  • 同COPY指令
  • 如果<src>為URL且<dest>不以/結尾,則<src>指定的文件將被下載並直接被創建為<dest>;如果<dest>以/結尾,則文件名URL指定的文件將被直接下載並保存為<dest>/<filename>
  • 如果<src>是一個本地系統上的壓縮格式的tar文件,它將被展開為一個目錄
    ,其行為類似於“tar -x”命令;然而,通過URL獲取到的tar文件將不會自動
    展開;
  • 如果<src>有多個,或其間接或直接使用了通配符,則<dest>必須是一個以/結尾的目錄路徑;如果<dest>不以/結尾,則其被視作一個普通文件,<src>的內容將被直接寫入到<dest>;
    示例:
#編輯dockerfile文件 [root@node-65 bbox]# vim dockerfile FROM busybox:latest #基於那個鏡像 MAINTAINER "hehe <hehe@hehe.com>" #作者信息 ADD http://120.52.51.15/nginx.org/download/nginx-1.15.8.tar.gz /usr/src/ #指明下路徑,下載到容器的那個目錄下 #構建鏡像 [root@node-65 bbox]# docker build ./ -t docker.io/busybox:v0.2.1 Sending build context to Docker daemon 3.072 kB Step 1/3 : FROM busybox:latest ---> 758ec7f3a1ee Step 2/3 : MAINTAINER "hehe <hehe@hehe.com>" ---> Using cache ---> b3e8146d6485 Step 3/3 : ADD http://120.52.51.15/nginx.org/download/nginx-1.15.8.tar.gz /usr/src/ Downloading 1.028 MB/1.028 MB #第三行執行已下載 ---> 089314c3ad7e Removing intermediate container 7ae8d8e836e0 Successfully built 089314c3ad7e #構建完成 #查詢鏡像 [root@node-65 bbox]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/busybox v0.2.1 089314c3ad7e About a minu 
WORKDIR
  • 用於為Dockerfile中所有的RUN、CMD、ENTRYPOINT、COPY和
    ADD指定設定工作目錄

Syntax語法格式

WORKDIR <dirpath>

  • 在Dockerfile文件中,WORKDIR指令可出現多次,其路徑也可以為相對路徑,不過其是相對此前一個WORKDIR指令指定的路徑
  • 另外,WORKDIR也可調用由ENV指定定義的變量
例如
l WORKDIR /var/log
l WORKDIR $STATEPATH
VOLUME
  • 用於在image中創建一個掛載點目錄,以掛載Docker host上的卷或
    其它容器上的卷

Syntax語法
VOLUME <mountpoint> 或
VOLUME ["<mountpoint>"] 多個卷由中括號括起來中間逗號隔開

  • 如果掛載點目錄路徑下此前在文件存在,docker run命令會在卷掛載完成后將此前的所有文件復制到新掛載的卷中
    示例:
#編輯dockerfile文件 [root@node-65 bbox]# vim dockerfile FROM busybox:latest #基於那個鏡像 MAINTAINER "hehe <hehe@hehe.com>" #作者信息 ADD http://120.52.51.15/nginx.org/download/nginx-1.15.8.tar.gz /usr/src/ #指明下路徑,下載到容器的那個目錄下 VOLUME /data/html/ #指明容器中的掛載路徑,宿主機對應路徑有docker管理生成 
EXPOSE
  • 用於為容器打開指定要監聽的端口以實現與外部通信

Syntax語法
EXPOSE <port>[/<protocol>] [<port>[/<protocol>] ...]

  • <protocol>用於指定傳輸層協議,可為tcp或udp二者之一,默認為TCP協議
    EXPOSE指令可一次指定多個端口,例如
#編輯dockerfile文件 [root@node-65 bbox]# vim dockerfile FROM busybox:latest #基於那個鏡像 MAINTAINER "hehe <hehe@hehe.com>" #作者信息 ADD http://120.52.51.15/nginx.org/download/nginx-1.15.8.tar.gz /usr/src/ #指明下路徑,下載到容器的那個目錄下 VOLUME /data/html/ #指明容器中的掛載路徑,宿主機對應路徑有docker管理生成 EXPOSE 80/tcp #暴露80端口 
ENV
  • 用於為鏡像定義所需的環境變量,並可被Dockerfile文件中位於其后的其它指令(如ENV、ADD、COPY等)所調用
  • 調用格式為variable_name或{variable_name}

Syntax語法
ENV <key> <value> 或
ENV <key>=<value> ...

  • 第一種格式中,<key>之后的所有內容均會被視作其<value>的組成部分
    ,因此,一次只能設置一個變量;

  • 第二種格式可用一次設置多個變量,每個變量為一個"<key>=<value>"的
    鍵值對,如果<value>中包含空格,可以以反斜線()進行轉義,也可通過
    對<value>加引號進行標識;另外,反斜線也可用於續行;

  • 定義多個變量時,建議使用第二種方式,以便在同一層中完成所有功能
    例如:

#編輯dockerfile文件 [root@node-65 bbox]# vim dockerfile FROM busybox:latest #基於那個鏡像 MAINTAINER "hehe <hehe@hehe.com>" #作者信息 ENV nginx_file http://120.52.51.15/nginx.org/download/nginx-1.15.8.tar.gz #設定nginx_file變量值 ADD ${nginx_file} /usr/src/ #調用變量,下載到容器的那個目錄下 
RUN
  • 用於指定docker build過程中運行的程序,其可以是任何命令

Syntax語法
RUN <command> 或
RUN ["<executable>", "<param1>", "<param2>"]

  • 第一種格式中,<command>通常是一個shell命令,且以“/bin/sh -c”來運行它。
  • 第二種語法格式中的參數是一個JSON格式的數組,其中<executable>為要運行的命令,后面的<paramN>為傳遞給命令的選項或參數;然而,此種格式指定的命令不會以“/bin/sh -c”來發起,因此常見的shell操作如變量替換以及通配符(?,*等)替換將不會進行;不過,如果要運行的命令依賴於此shell特性的話,可以將其替換為類似下面的格式。
#編輯dockerfile文件 [root@node-65 bbox]# vim dockerfile FROM busybox:latest #基於那個鏡像 MAINTAINER "hehe <hehe@hehe.com>" #作者信息 RUN /bin/adduser -D myuser && \ /bin/mkdir /tmp/testdir #添加一個myuser用戶,並創建目錄 
CMD
  • 類似於RUN指令,CMD指令也可用於運行任何命令或應用程序,不過,二者的運行時間點不同
  • RUN指令運行於映像文件構建過程中,而CMD指令運行於基於Dockerfile
    構建出的新映像文件啟動一個容器時
  • CMD指令的首要目的在於為啟動的容器指定默認要運行的程序,且其運
    行結束后,容器也將終止;不過,CMD指定的命令其可以被docker run的
    命令行選項所覆蓋
  • 在Dockerfile中可以存在多個CMD指令,但僅最后一個會生效

Syntax語法格式
CMD <command> 或
CMD [“<executable>”, “<param1>”, “<param2>”] 或
CMD ["<param1>","<param2>"]

  • 前兩種語法格式的意義同RUN
  • 第三種則用於為ENTRYPOINT指令提供默認參數
ENTRYPOINT
  • 類似CMD指令的功能,用於為容器指定默認運行程序,從而使得容器像是一個單獨的可執行程序
  • 與CMD不同的是,由ENTRYPOINT啟動的程序不會被docker run命令行指定的參數所覆蓋,而且,這些命令行參數會被當作參數傳遞給ENTRYPOINT指定指定的程序
  • 不過,docker run命令的--entrypoint選項的參數可覆蓋ENTRYPOINT指令
    指定的程序

Syntax語法格式
ENTRYPOINT <command>
ENTRYPOINT ["<executable>", "<param1>", "<param2>"]

  • docker run命令傳入的命令參數會覆蓋CMD指令的內容並且附加到
    ENTRYPOINT命令最后做為其參數使用
  • Dockerfile文件中也可以存在多個ENTRYPOINT指令,但僅有最后
    一個會生效
USER
  • 用於指定運行image時的或運行Dockerfile中任何RUN、CMD或
    ENTRYPOINT指令指定的程序時的用戶名或UID
  • 默認情況下,container的運行身份為root用戶

Syntax語法格式
USER <UID>|<UserName>

  • 需要注意的是,<UID>可以為任意數字,但實踐中其必須為/etc/passwd中
    某用戶的有效UID,否則,docker run命令將運行失敗
ONBUILD
  • 用於在Dockerfile中定義一個觸發器
  • Dockerfile用於build映像文件,此映像文件亦可作為base image被
    另一個Dockerfile用作FROM指令的參數,並以之構建新的映像文件
  • 在后面的這個Dockerfile中的FROM指令在build過程中被執行時,將會“觸發”創建其base image的Dockerfile文件中的ONBUILD指令定義的觸發器

Syntax語法格式
ONBUILD <INSTRUCTION>

  • 盡管任何指令都可注冊成為觸發器指令,但ONBUILD不能自我嵌套,且不會觸發FROM和MAINTAINER指令
  • 使用包含ONBUILD指令的Dockerfile構建的鏡像應該使用特殊的標簽,例如
    ruby:2.0-onbuild
  • 在ONBUILD指令中使用ADD或COPY指令應該格外小心,因為新構建過程的上下文在缺少指定的源文件時會失敗
#編輯dockerfile文件 [root@node-65 bbox]# vim dockerfile FROM busybox:latest #基於那個鏡像 MAINTAINER "hehe <hehe@hehe.com>" #作者信息 ONBUILD RUN /bin/adduser -D myuser #當使用這個鏡像做基礎鏡像時候,觸發執行命令,自動添加一個myuser用戶 
示例使用dockerfile文件制作nginx的鏡像:
#創建工作目錄
[root@node-65 ~]# mkdir nginx

#創建nginx測試頁
[root@node-65 ~]# vim index.html
<h1> nginx test page </h1>

[root@node-65 nginx]# vim dockerfile 

FROM centos:latest         #基准鏡像
MAINTAINER "hehe <hehe@hehe.com>"   #作者信息

WORKDIR /usr/local/src/      #工作目錄
ENV NG_VERSION nginx-1.15.8  #定義環境變量

RUN yum -y install epel-release     #安裝epel倉庫
RUN yum -y install wget  && wget http://120.52.51.15/nginx.org/download/$NG_VERSION.tar.gz && tar xzvf $NG_VERSION.tar.gz   #下載nginx文件並解壓

 #安裝編譯依賴包
RUN yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel && yum install -y pcre-devel  libxslt-devel gd-devel GeoIP GeoIP-devel GeoIP-data
RUN yum clean all  #清理倉庫
RUN useradd -M -s /sbin/nologin nginx   #創建nginx用戶
WORKDIR /usr/local/src/$NG_VERSION   #切換工作目錄

#編譯安裝nginx
RUN ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-file-aio  --with-http_ssl_module  --with-http_realip_module    --with-http_addition_module    --with-http_xslt_module   --with-http_image_filter_module    --with-http_geoip_module  --with-http_sub_module  --with-http_dav_module --with-http_flv_module    --with-http_mp4_module --with-http_gunzip_module  --with-http_gzip_static_module  --with-http_auth_request_module  --with-http_random_index_module   --with-http_secure_link_module   --with-http_degradation_module   --with-http_stub_status_module && make && make install

ADD index.html /usr/local/nginx/html   #復制測試頁面到容器中
VOLUME  /usr/local/nginx/html            #設置容器中要掛在到宿主機的目錄
ENV PATH /usr/local/nginx/sbin:$PATH #設置sbin環境變量

EXPOSE 80/tcp                              #暴露80端口
ENTRYPOINT ["nginx"]                  
CMD ["-g","daemon off;"]
#當ENTRYPOINT和CMD連用時,CMD的命令是ENTRYPOINT命令的參數,兩者連用相當於nginx -g "daemon off;"而當一起連用的時候命令格式最好一致(這里選擇的都是json格式的是成功的,如果都是sh模式可以試一下)


#構建鏡像
[root@node-65 nginx]# docker build ./ -t docker.io/centos-nginx:v0.6.4

#根據構建的鏡像運行容器
[root@node-65 nginx]#  docker run --name h17 -d -p82:80  docker.io/centos-nginx:v0.6.4
a0657540fc0edc1e57e2fb494af5714f14242a4cf18bb076b4cb30099f45b46e


#查看容器
[root@node-65 nginx]# docker ps 
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                NAMES
a0657540fc0e        docker.io/centos-nginx:v0.6.4   "nginx -g 'daemon ..."   8 minutes ago       Up 8 minutes        0.0.0.0:82->80/tcp   h17

#查看卷掛載信息
[root@node-65 nginx]#  docker  inspect -f "{{.Mounts}}" h17
[{volume 2f4e45badaa0c21bc9211ebbb2c44c6f68d3c19b36facf74b3d9ac6be0775d64 /var/lib/docker/volumes/2f4e45badaa0c21bc9211ebbb2c44c6f68d3c19b36facf74b3d9ac6be0775d64/_data /usr/local/nginx/html local  true }]

 
容器測試頁面
#修改宿主機掛載目錄
[root@node-65]# vim /var/lib/docker/volumes/2f4e45badaa0c21bc9211ebbb2c44c6f68d3c19b36facf74b3d9ac6be0775d64/_data/index.html 

<h1> nginx test page </h1> <h1> HELLO DOCKER </h1> 
 
容器測試頁面也隨之更改

三、將鏡像文件導出為tar文件

  • 將一個或多個圖像保存到一個tar存檔,此方式不通過上傳dockhut分發鏡像,通過拷貝tar存檔,實現快速分發鏡像。

格式:docker save [OPTIONS] IMAGE [IMAGE...]

[root@node-65 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/hehe/centos v0.1.0-nginx 6aadb46a288a 23 minutes ago 395 MB #鏡像保存到本地 [root@node-65 ~]# docker save -o /root/centos-v0.1.0-nginx.tar 6aadb46a288a [root@node-65 ~]# ll total 747852 -rw-------. 1 root root 1233 Sep 25 19:45 anaconda-ks.cfg -rw------- 1 root root 406230016 Dec 30 11:14 centos-v0.1.0-nginx.tar 

四、從tar文件導入鏡像

docker load從tar存檔文件讀取

格式:docker load [OPTIONS]

--input, -i 從tar存檔文件讀取,而不是STDIN

--quiet, -q false 工作在靜默模式,不輸出操作信息

[root@node-65 ~]# docker load -i /root/centos-v0.1.0-nginx.tar


作者:任總
鏈接:https://www.jianshu.com/p/dc4cd0547d1e
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM