国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Docker入門(一) - 倉庫、容器、鏡像、數(shù)據(jù)卷

PingCAP / 3572人閱讀

摘要:容器是完全使用沙箱機制,相互之間不會有任何接口。容器通過啟動鏡像跑起來的運行環(huán)境,這個時候就是一個裝在容器里的小型操作系統(tǒng)。當鏡像只存在一個標簽的時候,刪除則會執(zhí)行操作刪除鏡像文件的層。

Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
Docker的面世讓我們解決很多工程上面的問題,下面來看一下Docker的特性和優(yōu)點
`特性`
* 倉庫 - 顧名思義,就是存放docker的一個整體倉庫,可以通過redis、mysql、nginx等進行分類,也可以通過工程a1、a2、a3進行分類。
* 鏡像 - 運行環(huán)境的靜態(tài)體現(xiàn),就是整合好但是沒起來的“運行環(huán)境”。
* 容器 - 通過啟動鏡像跑起來的“運行環(huán)境”,這個時候就是一個裝在容器里的小型操作系統(tǒng)。

`優(yōu)點`
* 隔離性 - (分離測試環(huán)境) 虛擬機時代經(jīng)常會遇到測試環(huán)境公用一套無法獨立測試而導致多人同時開發(fā)阻塞在測試環(huán)境上。
* 持續(xù)集成 - (快速擴容)只需要簡單的導入導出操作,既可快速搭建第二套環(huán)境,還有比這更方便的么?
一.倉庫 1.下載倉庫

由于docker鏡像源在海外,需要借助DaoCloud加速器來進行加速

?  docker pull centos
Using default tag: latest
latest: Pulling from library/centos
45a2e645736c: Pull complete
Digest: sha256:6e45de12a92ce6fcc0e3d0ffca8000833675f96679b3f1ecf71485c339826f27
Status: Downloaded newer image for centos:latest

二.鏡像 1.查看鏡像
?  docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              104bec311bcd        2 weeks ago         129 MB
2.創(chuàng)建鏡像

創(chuàng)建鏡像有3種方法

1.基于已有鏡像的容器創(chuàng)建

參考保存鏡像例子

2.基于本地模板的導入

OPEN-VZ模板下載模板

?  cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14.04
3.基于Dockerfile創(chuàng)建(存處鏡像到本地文件)
?  docker save -o ubuntu_14.04.tar ubuntu:latest

?  docker ubuntu:latest

?  docker load --input ubuntu_14.04.tar 
or
?  docker load < ubuntu_14.04.tar
3.編輯鏡像

編輯退出過后,不會保存修改的內(nèi)容,需要自行保存鏡像(類似maven的提交)。

?  docker run -t -i ubuntu /bin/bash
root@a61446f099f3:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@a61446f099f3:/# touch a
root@a61446f099f3:/# ls
a  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@a61446f099f3:/# exit
4.保存鏡像

docker commit -m [提交版本信息] -a [作者] [編輯鏡像的鏡像的容器的ID:a61446f099f3] [目標鏡像的倉庫名:tag]

可壓縮鏡像大小

docker export [提交版本信息] | docker import - [目標鏡像的倉庫名:tag]

?  docker commit -m "first commit" -a "ellis" a61446f099f3 ubuntu:test
sha256:9a0c4d4bb4e8766cf250bb5620fa4d8364fc59bb3ea5919cd7b72f751ddb4019

?  docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              test                9a0c4d4bb4e8        3 minutes ago       129 MB
ubuntu              latest              104bec311bcd        2 weeks ago         129 MB
5.查詢鏡像
?  docker search mysql
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                           MySQL is a widely used, open-source relati...   3625      [OK]
mysql/mysql-server              Optimized MySQL Server Docker images. Crea...   237                  [OK]
centurylink/mysql               Image containing mysql. Optimized to be li...   47                   [OK]
sameersbn/mysql                                                                 41                   [OK]
zabbix/zabbix-server-mysql      Zabbix Server with MySQL database support       20                   [OK]
zabbix/zabbix-web-nginx-mysql   Zabbix frontend based on Nginx web-server ...   11                   [OK]
appcontainers/mysql             Centos/Debian Based Customizable MySQL Con...   8                    [OK]
marvambass/mysql                MySQL Server based on Ubuntu 14.04              7                    [OK]
dnhsoft/mysql-utf8              Inherits the official MySQL image configur...   4                    [OK]
bitnami/mysql                   Bitnami MySQL Docker Image                      3                    [OK]
alterway/mysql                  Docker Mysql                                    3                    [OK]
frodenas/mysql                  A Docker Image for MySQL                        3                    [OK]
drupaldocker/mysql              MySQL for Drupal                                2                    [OK]
yfix/mysql                      Yfix docker built mysql                         2                    [OK]
coscale/mysql                   CoScale custom configuration of the offici...   1                    [OK]
newrelic/mysql-plugin           New Relic Plugin for monitoring MySQL data...   1                    [OK]
lysender/mysql                  MySQL base image using Ubuntu 16.04 Xenial      1                    [OK]
projectomakase/mysql            Docker image for MySQL                          0                    [OK]
nanobox/mysql                   MySQL service for nanobox.io                    0                    [OK]
dockerizedrupal/mysql           mysql-for-docker                                0                    [OK]
cloudposse/mysql                Improved `mysql` service with support for ...   0                    [OK]
1maa/mysql                      MySQL database                                  0                    [OK]
captomd/mysql                   CaptoMD mysql configuration                     0                    [OK]
tozd/mysql                      MySQL (MariaDB fork) Docker image.              0                    [OK]
treenity/mysql                  Mysql5.7 with OSx permission fixs               0                    [OK]
6.刪除鏡像

當同一個鏡像存在多個標簽的時候,只是刪除指定的標簽,而不影響鏡像文件。

當鏡像只存在一個標簽的時候,刪除則會執(zhí)行操作刪除鏡像文件的AUFS層。

?  docker rmi mysql:latest
Untagged: mysql:latest
Untagged: mysql@sha256:116171866ef2a194368a1760c9ef8c80a75ff6bd28fd25d836d29ce1fcc8173a
Deleted: sha256:594dc21de8de7cdae01ecbd4d8a4dedead73756984896a00fce13cbc8c24f38e
Deleted: sha256:597ae92858cafe843838c2f7b5768fb657d8e67aa46fa9313267c8fed1e5339f
Deleted: sha256:31913f2e2b61577119ac02c90a7c803355dc471880c6b0b9da09aef6efb60979
Deleted: sha256:f6d702dc6a290c6e5d7a53879f3b0251daa24d41924841f90543666d3e237ff5
Deleted: sha256:5105103084f4c6ec91437ffa86e7d2929a3ac53805eb585c378c7935c03c6b42
Deleted: sha256:50a36ecefa69b886268dd91785e88074b3f48447f9b9a3d90c7d56ad2b76a8c3
Deleted: sha256:12c2fd29169d6fb77177a6c892ac289df304a0694bc79c5f9939035c5f695f1e
Deleted: sha256:d8e052f68f5ab9766b5927174e52b8ff23e5c7427afcc30aef6cc53c24a4d4e3
Deleted: sha256:9042efb93af5246dbc36ffd103a8b87e8d39e797e06656fb5df053ca77378eb9
Deleted: sha256:c08bac17c414ebfb8d22b46b79d4c1fc41d16a4452c924c306cbec673d215d43
Deleted: sha256:30499d7d4e67556242cabe7be7b1bac2a94d7ff00972c6236475858a91b4b2a7
Deleted: sha256:b6ca02dfe5e62c58dacb1dec16eb42ed35761c15562485f9da9364bb7c90b9b3

刪除none鏡像

?  docker rmi $(docker images -f "dangling=true" -q)

當鏡像創(chuàng)建的容器存在時,無法刪除鏡像文件,需要先刪除依賴該鏡像的所有容器,再刪除鏡像。

?  docker run ubuntu:test echo "hello world"
hello world

?  docker rmi ubuntu:test
Error response from daemon: conflict: unable to remove repository reference "ubuntu:test" (must force) - container 2761fed757c1 is using its referenced image 9a0c4d4bb4e8

?  docker docker rm 2761fed757c1
8d1488449db9

?  docker rmi -f 9a0c4d4bb4e8
Untagged: ubuntu:test
Deleted: sha256:9a0c4d4bb4e8766cf250bb5620fa4d8364fc59bb3ea5919cd7b72f751ddb4019
7.上傳鏡像

首先需要登陸,然后設(shè)置對應(yīng)賬戶的tag才能上傳,下面舉例子上傳的是test的倉庫到用戶xxxx里。

?  docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don"t have a Docker ID, head over to https://hub.docker.com to create one.
Username: ${xxxx}
Password:
Login Succeeded

?  docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test                latest              104bec311bcd        2 weeks ago         129 MB
ubuntu              latest              104bec311bcd        2 weeks ago         129 MB
mysql               5.7                 594dc21de8de        2 weeks ago         400.2 MB

?  docker tag test:latest xxxx/test:latest

?  docker docker push xxxx/test:latest
The push refers to a repository [docker.io/xxxx/test]
5972ebe5b524: Preparing
3d515508d4eb: Pushing [==================================================>] 4.608 kB
bbe6cef52379: Preparing
87f743c24123: Pushing [==================================================>] 15.87 kB
32d75bc97c41: Preparing

三.容器 1.創(chuàng)建/啟動/關(guān)閉

從啟動到關(guān)閉

?  docker create -it test:latest
11ad937149a8750487e72cf0a696b85927388acbadcba3138d821fbe06ba9c18

?  docker start 11ad937149a8
11ad937149a8

?  docker stop 11ad937149a8
11ad937149a8

等價于

?  docker run ubuntu /bin/echo "Hello world"
Hello world
2.進入容器

-t 讓Docker分配一個偽終端并綁定到容器的標準輸入上
-i 讓容器的標準輸入保持打開

?  docker run -t -i test:latest /bin/bash
root@b7a06bcfe3e2:/#
3.后臺運行
執(zhí)行指令
?  docker run -d test:latest /bin/sh -c "while true;do echo hello world; sleep 1; done"
7a964175acc1b91a9358c6a4ae7eff53e57d053ffabbd956de4ad8212298ed08

查看容器進程
?  docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                          PORTS               NAMES
7a964175acc1        test:latest         "/bin/sh -c "while tr"   9 seconds ago        Up 8 seconds                                        desperate_fermat

查看容器日志
?  docker logs 7a964175acc1
hello world
hello world

終止容器
?  docker stop 7a964175acc1
7a964175acc1
or 
?  docker kill 7a964175acc1
7a964175acc1

重啟容器
?  docker restart ecb24cdd42f2
ecb24cdd42f2
4.回到容器

使用-d參數(shù)的時候,容器啟動就后臺運行了,需要進入這些后臺運行中的容器會用到attach。

?  docker attach 7a964175acc1
hello world
hello world

但是當使用attach退出來的時候,后臺進程也會跟著結(jié)束。自Docker1.3版本起,可以使用exec直接啟動一個bash。

?  docker exec -ti 7a964175acc1 /bin/bash
root@7a964175acc1:/#
5.刪除容器

-f --force=false強行終止并刪除一個運行中的容器
-l --link=false刪除容器的連接,但保留容器
-v --volumes=false刪除容器掛載的數(shù)據(jù)卷

?  docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
ecb24cdd42f2        test:latest         "/bin/sh -c "while tr"   19 minutes ago      Exited (0) 8 minutes ago                          small_wescoff

?  docker rm ecb24cdd42f2
ecb24cdd42f2

?  docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
7a964175acc1        test:latest         "/bin/sh -c "while tr"   20 minutes ago      Up 5 minutes                                      desperate_fermat
?  docker rm 7a964175acc1
Error response from daemon: You cannot remove a running container 7a964175acc1b91a9358c6a4ae7eff53e57d053ffabbd956de4ad8212298ed08. Stop the container before attempting removal or use -f
?  docker rm -f 7a964175acc1
7a964175acc1
6.導出容器
?  docker docker export 67926c2742d8 > test_for_run.tar
?  docker ls
test_for_run.tar
7.導入容器
?  cat test_for_run.tar| docker import - mdxdjh/test:v1.0
sha256:22673bf214f309ebdcb129380bb71d6af0a0fae1053fa9863b73484d61926798
?  docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
mdxdjh/test         v1.0                22673bf214f3        2 seconds ago        110.9 MB

四.數(shù)據(jù)卷 1.創(chuàng)建數(shù)據(jù)卷

/tmp為本地路徑,/var/tmp為容器
ro 只讀,rw 讀寫

?  ls /tmp
a

?  docker run -tid --name myTmp -v /tmp:/var/tmp:ro test1:latest
31f0d584d5592c5bf147b4dba3a80f6dff3bac7da79ae94ec8b5efc90f1ee05b

?  docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
31f0d584d559        test1:latest        "/bin/bash"         10 seconds ago      Up 8 seconds                            elegant_golick

?  docker exec -ti 31f0d584d559 /bin/bash
root@31f0d584d559:/# ls /var/tmp/
a
2.數(shù)據(jù)卷共享

先創(chuàng)建一個數(shù)據(jù)卷myTmp,通過綁定共享到給anotherTmp1,再通過anotherTmp1共享給anotherTmp2達到級聯(lián)共享的效果

刪除anotherTmp1和anotherTmp2不會造成myTmp數(shù)據(jù)卷內(nèi)容丟失,刪除myTmp(父)會導致anotherTmp1和anotherTmp2數(shù)據(jù)級聯(lián)刪除

?  docker run -ti --volumes-from  myTmp --name anotherTmp1 test1:latest
root@fe2e007b1f96:/# ls /var/tmp/
a

?  docker run -ti --volumes-from anotherTmp1 --name anotherTmp2 test1:latest
root@9a35e7fc68cb:/# ls /var/tmp/
a
3.刪除數(shù)據(jù)卷

-v 刪除關(guān)聯(lián)的容器

?  docker rm -v 9a35e7fc68cb

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/26868.html

相關(guān)文章

  • Docker 快速入門指引

    摘要:本文最早發(fā)表于本人博客快速入門指引是什么是公司開源的一個基于技術(shù)之上構(gòu)建的容器引擎,基于語言并遵從協(xié)議開源。指令用于設(shè)置用戶或來運行生成的鏡像和執(zhí)行指令。中定義的指令不會繼承到當前引用的鏡像中,也就是當引用的鏡像創(chuàng)建完成后將會清除所 本文最早發(fā)表于本人博客: Docker 快速入門指引 Docker是什么? Docker是 Docker.Inc 公司開源的一個基于 LXC技術(shù)之上構(gòu)建的...

    figofuture 評論0 收藏0
  • Docker 入門

    摘要:因為鏡像包含操作系統(tǒng)完整的文件系統(tǒng),其體積往往是龐大的,因此在設(shè)計時,就充分利用的技術(shù),將其設(shè)計為分層存儲的架構(gòu)。分層存儲的特征還使得鏡像的復用定制變的更為容易。容器也采用分層存儲。 什么是 Docker? Docker 使用 Google 公司推出的 Go 語言 進行開發(fā)實現(xiàn),基于 Linux 內(nèi)核的 cgroup,namespace,以及 AUFS 類的 Union FS 等技術(shù)...

    FWHeart 評論0 收藏0
  • Docker學習筆記

    摘要:通過類似的操作來方便用戶獲取分發(fā)和更新應(yīng)用鏡像,指令簡明,學習成本較低。例如存放操作系統(tǒng)鏡像的倉庫,稱為倉庫,其中可能包括等不同版本的鏡像。管理服務(wù)如使用實際上是執(zhí)行了命令。啟動使用即退出容器,并后臺運行。 Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制...

    jk_v1 評論0 收藏0
  • Docker 極簡印象

    摘要:通過指令可以將可修改層提交到鏡像中,從而生成一個新的鏡像。倉庫有了鏡像之后,可以很方便的在不同的機器上運行一致的環(huán)境。數(shù)據(jù)卷是獨立于容器存在的,容器銷毀后數(shù)據(jù)卷仍然存在。 Docker是一款比傳統(tǒng)虛擬機軟件更先進的虛擬化工具,可以快速的在不同機器上搭建出一致的開發(fā)、調(diào)試、運行環(huán)境。它的核心概念有鏡像、容器和倉庫。 鏡像(Image) 類似于ISO文件,是一個打包好的運行環(huán)境。一個鏡像可...

    GraphQuery 評論0 收藏0
  • Ops.Docker-deepin環(huán)境下Docker入門操作練習

    摘要:安裝若按下方操作安裝不成功請參考官方安裝說明文檔卸載以前版本安裝與密鑰管理與下載相關(guān)的工具下載并安裝密鑰查看密鑰是否安裝成功如果安裝成功,會出現(xiàn)如下內(nèi)容添加官方倉庫更新倉庫安裝查看的文件,路 安裝 若按下方操作安裝不成功請參考官方安裝說明文檔 #卸載以前版本 sudo apt-get remove docker docker-engine #安裝docker-ce與密鑰管理與下載相關(guān)...

    kyanag 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<