成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

docker命令

Tonny / 3052人閱讀

摘要:,自動(dòng)構(gòu)建,表示這個(gè)鏡像由的自動(dòng)構(gòu)建流程構(gòu)建的。保存的目錄稱為上下文,會(huì)在構(gòu)建鏡像時(shí)將構(gòu)建的上下文和該上下文的文件和目錄上傳到守護(hù)進(jìn)程??捎寐赃^緩存查看鏡像的每一層參考第一本書

docker入門
主要是docker使用命令
docker守護(hù)進(jìn)程 修改守護(hù)進(jìn)程的網(wǎng)絡(luò)
sudo docker daemon -H tcp://0.0.0.0:2375  
這條命令將docker守護(hù)進(jìn)程
//使用docker_host環(huán)境變量
export DOCKER_HOST = "tcp:0.0.0:2375`
檢查docker是否運(yùn)行
sudo status docker        //sudo service docker status
啟動(dòng)和關(guān)閉
sudo stop docker        //sudo service docker stop
sudo start docker        //sudo service docker  start
docker容器操作 查看docker是否正常工作
sudo docker info
運(yùn)行容器
sudo docker run -i -t ubuntu /bin/bash
//-i標(biāo)記保證容器是STDIN開啟的
//-t標(biāo)記告訴docker要?jiǎng)?chuàng)建的容器分配一個(gè)偽tty終端
//ubuntu 指定鏡像
// /bin/bash告訴docker容器要運(yùn)行什么命令
容器命名

docker默認(rèn)為創(chuàng)建的容器生成一個(gè)隨機(jī)的名稱,可通過--name標(biāo)記來給容器命名

sudo docker run --name myName -i -t ubuntu /bin/bash
啟動(dòng)已經(jīng)停止的容器
sudo docker start myName  //也可通過id指定
//也可使用docker restart命令
附著到容器上

docker容器重新啟動(dòng)的時(shí)候,會(huì)沿用docker run命令時(shí)指定的參數(shù)來運(yùn)行,因此上例中重新啟動(dòng)會(huì)運(yùn)行一個(gè)交互式的shell,此外也可以用docker attach重新附著到該容器的會(huì)話上

sudo docker attach myName    //也可通過id指定
創(chuàng)建守護(hù)式容器

除了交互式運(yùn)行的容器,也可以創(chuàng)建長期運(yùn)行的容器,守護(hù)式容器沒有交互式會(huì)話,非常適合運(yùn)行應(yīng)用程序和服務(wù)。

sudo docker run --name daemon_name -d ubuntu /bin/sh -c "while true; do echo hello world;sleep 1;done"
//-d 標(biāo)記docker將容器放在后臺(tái)運(yùn)行
//while循環(huán)一直打印hello world
查看docker容器
docker ps         //查看正在運(yùn)行的容器
docker ps -a     //查看所有的容器
查看容器內(nèi)部
docker logs daemon_name    //獲取容器的日志,可通過-f來追蹤日志
日志驅(qū)動(dòng)

docker1.6開始,可通過--log-driver選項(xiàng)來控制docker守護(hù)線程和容器所有的日志驅(qū)動(dòng),可以在執(zhí)行docker守護(hù)線程或者執(zhí)行docker run命令時(shí)使用這個(gè)選項(xiàng)。

sudo docker run --log-driver="syslog" --name daemon_name -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
//將daemon_name容器的日志輸出到syslog,導(dǎo)致docker logs命令不會(huì)輸出任何東西
查看容器內(nèi)的進(jìn)程
sudo docker top daemon_name
在容器內(nèi)部運(yùn)行進(jìn)程
sudo docker exec -d daemon_name touch /etc/new_config_file
//-d 標(biāo)記運(yùn)行一個(gè)后臺(tái)進(jìn)程 后面明智執(zhí)行名氣的名字以及執(zhí)行的命令
sudo docker exec -t -i daemon_name /bin/bash
//創(chuàng)建TTY并捕捉STDIN
關(guān)閉容器
sudo docker stop daemon_name
深入容器
sudo docker inspect daemon_name 
//查看更多容器的信息
//該命令也可用來查看鏡像信息
刪除容器
sudo docker rm 80430f8d0921        //通過指定容器id
//刪除全部容器
sudo docker rm `sudo docker ps -a -q`    //-q標(biāo)記表示只返回容器的id

docker鏡像 列出docker鏡像
sudo docker images
//本地鏡像都保存在docker宿主機(jī)的/var/lib/docker目錄i西安,每個(gè)鏡像都保存在docker所采用的存儲(chǔ)驅(qū)動(dòng)目錄下面,如aufs或者devicemapper,也可以在/var/bin/docker/containers目錄下看到所有容器
拉取鏡像
sudo docker pull ubuntu:12.04
運(yùn)行一個(gè)帶標(biāo)簽的docker鏡像
sudo docker run -t -i --name new_container ubuntu:12:04 /bin/bash
查找鏡像

可以通過docker search命令來查找所有docker hub上公共的可用鏡像

sudo docker search puppet
NAME                        DESCRIPTION                                     STARS   OFFICIAL       AUTOMATED
puppet/puppetserver         A Docker Image for running Puppet Server. Wi…   75                               
alekzonder/puppeteer        GoogleChrome/puppeteer image and screenshots…   51                     [OK]

倉庫名

鏡像描述

stars,用戶評(píng)價(jià)

official,是否官方,由上游開發(fā)者管理的鏡像(如fedora鏡像由fedora團(tuán)隊(duì)管理)。

automated,自動(dòng)構(gòu)建,表示這個(gè)鏡像由docker hub的自動(dòng)構(gòu)建流程構(gòu)建的。

構(gòu)建鏡像 構(gòu)建鏡像有兩種方式

docker commit命令

docker build命令和dockerfile文件

現(xiàn)在并不推薦使用docker commit命令,而應(yīng)該使用更靈活、更強(qiáng)大的dockerfile來構(gòu)建docker鏡像

一般來說都是基于已有的基礎(chǔ)鏡像,而不是“創(chuàng)建”新鏡像,從0開始可以參考:https://docs.docker.com/develop/develop-images/baseimages/

創(chuàng)建docker hub賬號(hào)

創(chuàng)建完鏡像之后,可以將鏡像推送到docker hub或者私有的registryzhong,完成這個(gè)操作需要在docker hub上創(chuàng)建一個(gè)賬號(hào)。
https://hub.docker.com/signup

登陸到docker hub
sudo docker login
Username:
Password:
Login Succeeded

用docker commit來創(chuàng)建鏡像
//創(chuàng)建一個(gè)新容器
sudo docker run -i -t ubuntu /bin/bash
//在容器內(nèi)部安裝一些軟件...

//得到剛剛創(chuàng)建容器的id
docker ps -l -q
9649de16bffb

//提交定制容器
sudo docker commit 9649de16bffb    dack/apache2
    
//檢查新創(chuàng)建的鏡像
docker images dack/apache2
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
dack/apache2        latest              2c5cd556c3f2        About a minute ago   209MB

也可以在提交鏡像時(shí)指定更多的數(shù)據(jù)(包含標(biāo)簽)來詳細(xì)描述所做的修改

sudo docker commit -m "A new custom image" -a "dack huang" 9649de16bffb dack/apache2:webserver

//-m 提交信息
//-a 作息信息
//dack/apache2:webserver 執(zhí)行鏡像的用戶名和倉庫名,并為該鏡像增加一個(gè)webserver的標(biāo)簽    

用Dockerfile構(gòu)建鏡像

并不推薦用docker commit構(gòu)建鏡像,相反推薦使用Dockerfile的定義文件和docker build來構(gòu)建鏡像

Dockerfile使用基本的基于DSL(Domain Specific Language)語法的指令來構(gòu)建一個(gè)docker鏡像,對(duì)比docker commit,其更具備可重復(fù)性、透明性和冪等性。

保存Dockerfile的目錄稱為上下文,docker會(huì)在構(gòu)建鏡像時(shí)將構(gòu)建的上下文和該上下文的文件和目錄上傳到docker守護(hù)進(jìn)程。這樣docker守護(hù)進(jìn)程就可以直接訪問用戶想在鏡像中存儲(chǔ)的任何代碼、文件或者其他數(shù)據(jù)。

dockerfile中每條指令從上到下依次執(zhí)行,大體的流程如下:

docker從基礎(chǔ)鏡像中運(yùn)行一個(gè)容器

執(zhí)行一條指令,對(duì)容器做出修改

執(zhí)行類似docker commit的操作,提交一個(gè)新的鏡像層

docker再基于剛提交的鏡像運(yùn)行一個(gè)新容器

執(zhí)行下一條指令直至全部執(zhí)行完畢

所以盡管某一步執(zhí)行失敗了,還是得到一個(gè)可以使用的鏡像

# Version : 0.01
FROM ubuntu:14.04
MAINTAINER dack huang "[email protected]"
RUN apt-get update && apt-get install -y nginx
RUN echo "Hi, I am in your container" 
    >/usr/share/nginx/html/index.html
EXPOSE 80


FROM            //指定基礎(chǔ)鏡像
MAINTAINER        //指定鏡像作者
RUN                //在當(dāng)前鏡像中運(yùn)行的命令,默認(rèn)在shell里面使用/bin/sh -c執(zhí)行
EXPOSE            //應(yīng)用程序會(huì)使用容器指定的接口

通過docker build構(gòu)建鏡像

docker build -t="dack/static_web"
//-t設(shè)置鏡像標(biāo)簽

//從git倉庫上面構(gòu)建鏡像
//假設(shè)這個(gè)git倉庫存在Dockerfile
docker build -t="dack/static" [email protected]:dack/docker-static_web    

docker將每一步的構(gòu)建過程都提交為鏡像,所以docker會(huì)將之前的鏡像層看成緩存,當(dāng)修改某個(gè)步驟之后再次構(gòu)建的,docker會(huì)直接從該步驟開始。

可用docker build --no-cache略過緩存

docker build --no-cache -t="dack/static_web"

docker history查看鏡像的每一層

[root@dack static_web]# docker history e5f55354c141
IMAGE               CREATED             CREATED BY                                      SIZE            COMMENT
e5f55354c141        5 hours ago         /bin/sh -c #(nop)  EXPOSE 80                    0B                  
66d44cca6536        5 hours ago         /bin/sh -c echo "Hi, I am in your container"…   27B                 
022c0b46f4f8        5 hours ago         /bin/sh -c apt-get update && apt-get install…   34.3MB              
34d2d2b790f5        5 hours ago         /bin/sh -c #(nop)  MAINTAINER dack huang "da…   0B                  
390582d83ead        3 weeks ago         /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B                  
           3 weeks ago         /bin/sh -c mkdir -p /run/systemd && echo "do…   7B            


參考

第一本docke書

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27766.html

相關(guān)文章

  • docker命令詳解

    摘要:與命令不同,使用命令只能創(chuàng)建容器而并不啟動(dòng)選項(xiàng)鏡像名稱命令參數(shù)將標(biāo)準(zhǔn)輸入標(biāo)準(zhǔn)輸出標(biāo)準(zhǔn)錯(cuò)誤鏈接到容器向容器的添加主機(jī)名與地址設(shè)置資源分配。輸入命令退出后,容器不會(huì)停止,而會(huì)繼續(xù)運(yùn)行。命令命令用于以格式顯示容器與鏡像的詳細(xì) docker命令詳解 前言 從技術(shù)老大那里聽說了docker,閑下來之后就簡單了解了一下,發(fā)現(xiàn)真的是一個(gè)好用的不得了的工具。遂周末去圖書館找了下相關(guān)資料,學(xué)習(xí)下姿勢(shì)。說...

    mayaohua 評(píng)論0 收藏0
  • Docker 1.13最實(shí)用命令行:終于可以愉快地打掃房間了

    摘要:同樣地,也有命令可以刪除掛起的鏡像網(wǎng)絡(luò)和。命令提供整體磁盤使用率的概況,包括鏡像容器和本地。因此這條命令比命令更局限。鏡像新的鏡像命令也是子命令。筆者最愛的命令莫過于,讓環(huán)境一直保持干凈整齊。 Docker 1.13出來已經(jīng)有一段時(shí)間了,新版本添加了許多有用的命令,本文作者從處女座的潔癖(此處有霧)出發(fā),告訴大家一些整理環(huán)境的小技巧。打掃房間再也不需費(fèi)時(shí)又費(fèi)力了,簡單的命令,就可以輕松...

    enda 評(píng)論0 收藏0
  • Docker命令行與守護(hù)進(jìn)程如何交互?

    摘要:命令行是與守護(hù)進(jìn)程進(jìn)行交互的主要工具。感興趣的話,你也可以開發(fā)一個(gè),使用與守護(hù)進(jìn)程進(jìn)行交互就好了。命令行與守護(hù)進(jìn)程如何交互從左至右理解上圖最左側(cè)是客戶端,即命令行。而在與上運(yùn)行時(shí),守護(hù)進(jìn)程事實(shí)上運(yùn)行在虛擬機(jī)中。 譯者按: Docker是典型的C/S架構(gòu),其守護(hù)進(jìn)程(daemon)與命令行(CLI)是通過REST API進(jìn)行交互的。 原文: Understanding how the D...

    willin 評(píng)論0 收藏0
  • Flux7 Docker 系列教程(二):必備的 15 條命令

    摘要:本系列教程翻譯自,系列共有九篇,本文譯自第二篇。總結(jié)本章知識(shí)介紹了最基本的十五個(gè)命令,接下來的教程將會(huì)陸續(xù)介紹如何在中運(yùn)行一個(gè)應(yīng)用以及其他的命令。接下來會(huì)在本系列教程結(jié)束后補(bǔ)充幾篇應(yīng)用的實(shí)例。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第二篇 Part 2: The 15 Commands。 該系列所有文章將參考其他學(xué)習(xí)...

    chemzqm 評(píng)論0 收藏0
  • Flux7 Docker 系列教程(二):必備的 15 條命令

    摘要:本系列教程翻譯自,系列共有九篇,本文譯自第二篇??偨Y(jié)本章知識(shí)介紹了最基本的十五個(gè)命令,接下來的教程將會(huì)陸續(xù)介紹如何在中運(yùn)行一個(gè)應(yīng)用以及其他的命令。接下來會(huì)在本系列教程結(jié)束后補(bǔ)充幾篇應(yīng)用的實(shí)例。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第二篇 Part 2: The 15 Commands。 該系列所有文章將參考其他學(xué)習(xí)...

    AprilJ 評(píng)論0 收藏0
  • 一篇文章帶你掌握docker基礎(chǔ)知識(shí)

    摘要:和區(qū)別讓用戶可以進(jìn)入查看輸出等等操作,但是并不會(huì)另外啟動(dòng)一個(gè)進(jìn)程如果你用來退出,同時(shí)這個(gè)信號(hào)會(huì)默認(rèn)情況會(huì)啟動(dòng)另外一個(gè)進(jìn)程來進(jìn)入,這里的操作是在這個(gè)進(jìn)程下的。 走在通往docker的大道上——docker基礎(chǔ)知識(shí)匯總 最后編輯時(shí)間:2017年03月09日 1.Docker是什么 Docker是一種新的容器化技術(shù),為應(yīng)用開發(fā)和部署提供一站式容器解決方案,能幫助開發(fā)者高效快速的構(gòu)建應(yīng)用,實(shí)...

    TANKING 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<