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

資訊專欄INFORMATION COLUMN

docker的簡介-安裝-pull-push-Dockfile

why_rookie / 2910人閱讀

摘要:安裝還是在上,上建議別折騰。也就是說本地是空的。是否截斷顯示中間層鏡像只是顯示倉庫一系列鏡像的集合。的后臺搜索然后直接上傳鏡像,會展開說。在本地構件一個新的鏡像保存對容器修改,并再次使用。然后我們安裝上了。

1.1docker概要

一個容器就是宿主機的一個進程。對,就是個進程。原理方面不大懂,但是
看更多linux 進程 文件管理 網絡 等方面應該會加深理解。namespace+cgroupchroot

1.2安裝docker

還是在linux上,win上建議別折騰。我這里是ubuntu,安裝完docker你可以在容器里弄出個centos。里面在裝docker,(不知道行不行的通。。)
配置需求
uname -i 64位
uname -r 內核版本大于3.10

可以直接apt-get install docker.io安裝版本會比較低,不建議

ps aux |grep docker
root       705  0.0  2.2 361808 17152 ?        Ssl  14:28   0:01 /usr/bin/docker -d
/usr/bin/docker -d //說明安裝成功


卸載apt-get remove --purge docker.io

安裝高版本(推薦) 把私有倉庫添加apt-get

$ sudo su - root
 apt-get -y installapt-transport-https
 apt-keyadv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
 bash -c "echo debhttps://get.docker.io/ubuntu docker main >/etc/apt/sources.list.d/docker.list"
 apt-get update
 apt-get -y install lxc-docker
 docker -v  //查看docker版本 Docker version 1.7.0-dev, build 5e06332
ps -ef | grep docker  
root    17311    1  0 Feb13 ?        00:00:43 /usr/bin/docker -d

service docker stop start restart

1.3 簡單理解docker

鏡像可以理解為一個目錄,啟動容器x的時候,chroot 到容器 x。
可以用docker info 查看。

cd var/lib/docker docker安裝所在目錄的aufs/mnt/* 每個容器目錄都在這里有root根

鏡像目錄
目錄a-》容器a
目錄b=》容器b

docker images 命令查看目前所有鏡像,初始化的時候肯定是空的了啊。也就是說本地registry是空的。

REPOSITORY          TAG                 IMAGE ID            CREATED            VIRTUAL SIZE

1.4舉個redis例子
我們可以從docker官方registry拉取鏡像用docker pull命令

docker pull redis:2.8.19

標識+tag(REPOSITORY:TAG)(redis:2.8.19)就肯定是一個唯一鏡像
下面run起來這個 redis。
eg1:sudo docker run -d redis
可以查看docker help run
-i-t 交互式容器就是直接進入,適合臨時性任務
-d后臺,守護氏容器,大多數需要守護石
-name 為容器指定一個名稱

eg2:sudo docker run -it centos:6 /bin/bash
帶入到虛擬容器中。
exit 回到宿主機,退出當前容器.交互式容器需要 docker ps -a選項看到。不加a看不到關閉的

如果沒有指定tag,就使用默認latest分支(tag),如果沒有指定命令,就使用默認命令(redis是/entrypoint.sh redis -server)。守護石容器運行在后臺,這樣我們繼續留在宿主機中

docker inspact【pid】 查看容器更詳細信息,pid可根據docker ps[-a]得到。
注意:在啟動docker的時候,只能啟動docker images里有的鏡像,如果沒有,會自動拉取。但是網速慢的話還是先停止,我們有下面的加速器。下載這個redis完全是看他還小點。。

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
redis               2.8.19              8c37ff647cf2        8 months ago        110.8 MB

啟動為

root@tb:/home/tb# docker run -d redis:2.8.19

root@tb:/home/tb# docker inspect 6b24| grep IPAddress
        "IPAddress": "172.17.0.1", 

查看具體某一項 docker inspect imageid,返回的是json格式,可以gerp查看具體某一項啦。

利用之前的docker redis 里面就可以set get key啦。

========================================================================

2.1 docker的鏡像與倉庫

一些命令和概念拾遺:
docker info 命令查看docker 的存儲驅動及對應信息。
docker images -af --no(是否截斷image id)-a顯示中間層鏡像 -q只是顯示imageid

respository 倉庫:一系列鏡像的集合。里面包含一個個的鏡像
tag 鏡像的標簽:默認為latest,同一個鏡像可以為不同標簽
registry倉庫,指的的docker鏡像的存儲倉庫
docker images redis 查看redis的倉庫
docker inspect pid視察檢查某個鏡像中的容器信息
docker rmi -f 強制刪除鏡像(imageid或者倉庫名+tag)
docker rm -link

2.2 拉取遠程鏡像

(可在https://hub.docker.com/注冊 ,然后搜索:內有鏡像評分和下載數量)
docker search -s 3 lnmp
docker pull domainer/centos-lnmp 這樣會比較慢,推薦使用國內鏡像加速

加速可參考:
https://dashboard.daocloud.io...

我是ubuntu 可以直接:

echo "DOCKER_OPTS="$DOCKER_OPTS --registry-mirror=http://88c88c7c.m.daocloud.io"" | sudo tee -a /etc/default/docker

然后重啟docker

sudo service docker restart

比如我想要個swoole的鏡像。daocloud.io的后臺搜索 swoole
然后直接 docker pull betashepherd/docker-swoole:1.7.15-stable

docker push 上傳docker鏡像,2.3會展開說。

2.3在本地構件一個新的鏡像

保存對容器修改,并再次使用。
軟件形式打包,做分發。

docker commit 通過容器構件鏡像

-a author
-m message
-p pause 

具體就靠man

演示我把本地的一個鏡像推送到dockerhub上:

目前鏡像

docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
redis                       latest              ff3dae0ffe3b        12 days ago         151.3 MB
daocloud.io/library/nginx   1.9.9               813e3731b203        3 weeks ago         133.9 MB
redis                       2.8.19              8c37ff647cf2        8 months ago        110.8 MB
domainer/centos-lnmp        latest              754c2ab8ffc8        11 months ago       574.9 MB
redis                       2.8.9               e938c5d0ff85        14 months ago       110.8 MB

我們運行centos lnmp

docker run -it -p 80 --name tb_commit_test domainer/centos-lnmp /bin/bash


[root@12fb650b9296 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var
[root@12fb650b9296 /]# which nginx
/usr/sbin/nginx

成功后就進入了這個鏡像

在這個容器裝個szrz吧,還是因為比較小。。

[root@12fb650b9296 /]# rz
bash: rz: command not found
[root@12fb650b9296 /]# yum install lrzsz -y

然后我們安裝上了。rzsz這兩個兄弟

退出當前容器

[root@12fb650b9296 /]# exit
exit
root@tb:/home/tb# 

docker ps -l 可以看到我們剛剛編輯的鏡像

CONTAINER ID        IMAGE                  COMMAND             CREATED             STATUS                      PORTS               NAMES
12fb650b9296        domainer/centos-lnmp   "/bin/bash"         9 minutes ago       Exited (0) 59 seconds ago                       tb


docker commit -a "tb" -m "rzsz" 12fb domainer/centos-lnmp
1799960f6ccafa9488f2ab17a1f1600601eb73187295fbe2c542603c5955d2e0

返回的id為新生成的鏡像的id,可以通過

docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
domainer/centos-lnmp        latest              1799960f6cca        33 minutes ago      655.4 MB

因為上面的鏡像我是從dockerhub上下載的,安裝了rzsz后提交不上到daocloud,以為是**問題。下面我們重新拉取從國內的daocloud,并修改,然后上傳到自己的鏡像到daocloud中

拉取:

docker pull nickistre/ubuntu-lamp
Pulling repository nickistre/ubuntu-lamp
5323e03e7da9: Pulling image (latest) from nickistre/ubuntu-lamp, mirror: http://624869e7.m.daocloud.io/v1/ 
5323e03e7da9: Pulling image (latest) from nickistre/ubuntu-lamp 

上傳到到daocloud:
daocloud上傳鏡像 (收費的,收費的,收費的。上傳不上去說權限限制。)

docker login daocloud.io

輸入用戶名密碼郵箱
然后...(如果你開通了這個服務的話)就上傳成功 了。

那我們還是在在hubdocker上在實驗下commitpush吧:

先pull一個nickistre/lamp的鏡像,我們在上面安裝一個nginx,然后上傳上去。

root@tb:/home/tb# docker run -it -p 80 --name commit_test   nickistre/ubuntu-lamp /bin/bash
root@f4cf34e4cac6:/# cat /etc/issue
Ubuntu 14.04.3 LTS 
 l

root@f4cf34e4cac6:/# which nginx
root@f4cf34e4cac6:/# which apache2
/usr/sbin/apache2

這次我們安裝個nginx

apt-get install nginx
Reading package lists... Done
Building dependency tree 

  

...
安裝好后

root@f4cf34e4cac6:/# which nginx
/usr/sbin/nginx
root@f4cf34e4cac6:/# 

然后我們在容器中啟動nginx

root@f4cf34e4cac6:/# service nginx status
 * nginx is not running
root@f4cf34e4cac6:/# service nginx start 
root@f4cf34e4cac6:/# service nginx status
 * nginx is running

好,我們切換到宿主機,運行docker ps

root@tb:/home/tb# docker ps
CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS              PORTS                                                            

      NAMES
f4cf34e4cac6        nickistre/ubuntu-lamp   "/bin/bash"         6 minutes ago       Up 6 minutes        0.0.0.0:32778->22/tcp, 0.0.0.0:32777->80/tcp, 0.0.0.0:32776->443/tcp   commit_test 

測試下看到80端口對應是32776

root@tb:/home/tb# curl 127.0.0.1:32777



Welcome to nginx!



Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

嗯,nginx沒問題,把修改好的容器提交為鏡像

docker commit  f4cf34e4cac6 yaxiaomu/lnamp

詳細信息可以這么寫:實際操作我沒寫
-a 作者名字
-m 鏡像信息

docker commit -a "yaxiaomu" -m "nginx" commit_test /yaxiaomu/commit_test

都會返回一個新生成的鏡像id

這樣就沒問題了。下面我們將更改上傳到dockerhub中,yaxiaomu是我的dockerhub用戶名

root@tb:/home/tb# docker push yaxiaomu/lnamp
The push refers to a repository [yaxiaomu/lnamp] (len: 1)
Sending image list
Pushing repository yaxiaomu/lnamp (1 tags)
895b070402bd: Image already pushed, skipping 
02e5bca4149b: Image already pushed, skipping 
b2ae0a712b39: Image already pushed, skipping 
af88597ec24b: Image already pushed, skipping 
31ef599b27ee: Image successfully pushed 
ee168b5cc455: Image successfully pushed 
d348d7a11841: Image successfully pushed 
c94ca54a3ff4: Image successfully pushed 
ca7003051cdb: Image successfully pushed 
c21876831405: Image successfully pushed 
4ec68505f54c: Image successfully pushed 
8b14247b8658: Image successfully pushed 
4a5230b7de4e: Image successfully pushed 
614789f7a3f4: Image successfully pushed 
9d1e26045261: Image successfully pushed 
62cde6caea01: Image successfully pushed 
82bfdf8409e4: Image successfully pushed 
8bac6635505b: Image successfully pushed 
05133d17b3c0: Image successfully pushed 
7f6d12e6d8c5: Image successfully pushed 
aff2549596d0: Image successfully pushed 
5323e03e7da9: Image successfully pushed 
ece7b4d33c19: Image successfully pushed 
Pushing tag for rev [ece7b4d33c19] on {https://cdn-registry-1.docker.io/v1/repositories/yaxiaomu/lnamp/tags/latest}
root@tb:/home/tb# 

雖然很漫長,這樣是成功了,感覺速度好慢。。

2.4我們用docker bulid dockerfile 文件構件鏡像(簡介~)

Dockerfile安裝鏡像
DockerFile文件,直白點就是包含了一系列命令的文本文件,他里面包含一些基本鏡像(中間件鏡像),一些docker命令腳本,
通過build+參數的方式來構造鏡像,build可以加載本地file,也可以加載遠程file(如果網絡不是問題的話)
這里列出個簡單例子
先看dockerfile的一個例子

# Memcached
#
# VERSION       1.0

# use the ubuntu base image provided by dotCloud
FROM ubuntu

# make sure the package repository is up to date
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN apt-get update

# install memcached

RUN apt-get install -y memcached

執行例子(注意自己配置Dockfle文件路徑):

docker build -t yaxiaomu/ubuntu_memcache .

.代表是當前目錄里有dockerfile 這個文件

更多Dockerfile參數
dockerfile安裝實例
稍微深入一下docker
鏡像加速201804更新

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/26491.html

相關文章

  • Docker容器系列教程(一):簡介安裝

    摘要:容器鏡像運行后,此時就實例化了一個容器。側重的是應用級別,而虛擬機是徹底隔離整個運行環境。方便交付將應用以及運行環境打包成一個鏡像,交付更簡單高效。下載地址點擊運行即可一如既往的下一步下一步完成安裝。 Docker是什么 Docker是一款由DotCloud公司(現改名為Docker)基于Go語言開發的開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發...

    BlackHole1 評論0 收藏0
  • Docker-Compose學習筆記(1)安裝簡介

    摘要:概述是一個用來定義和運行復雜應用的工具。使用,用戶通過來進行構建。使用,不再需要使用腳本來啟動容器。在配置文件中,所有的容器通過來定義,然后通過腳本來啟動,停止和重啟應用,和應用中的服務以及所有依賴服務的容器。 概述 Docker Compose是一個用來定義和運行復雜應用的Docker工具。使用Compose,你可以在一個文件中定義一個多容器應用,然后使用一條命令來啟動你的應用,完成...

    shiyang6017 評論0 收藏0
  • Docker-Compose學習筆記(1)安裝簡介

    摘要:概述是一個用來定義和運行復雜應用的工具。使用,用戶通過來進行構建。使用,不再需要使用腳本來啟動容器。在配置文件中,所有的容器通過來定義,然后通過腳本來啟動,停止和重啟應用,和應用中的服務以及所有依賴服務的容器。 概述 Docker Compose是一個用來定義和運行復雜應用的Docker工具。使用Compose,你可以在一個文件中定義一個多容器應用,然后使用一條命令來啟動你的應用,完成...

    zxhaaa 評論0 收藏0
  • Flux7 Docker 系列教程(一):Docker 簡介

    摘要:本系列教程翻譯自,系列共有九篇,本文譯自第一篇。,一種新的容器化技術,因為輕量級和便攜化而受到廣泛關注。本篇文章是系列教程的第一篇。鏡像只讀的容器模板,簡言之就是系統鏡像文件。首先,向發出請求創建一個鏡像并且指定容器內要運行的命令。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第一篇 Part 1: An Introduction。...

    zhaofeihao 評論0 收藏0
  • Flux7 Docker 系列教程(一):Docker 簡介

    摘要:本系列教程翻譯自,系列共有九篇,本文譯自第一篇。,一種新的容器化技術,因為輕量級和便攜化而受到廣泛關注。本篇文章是系列教程的第一篇。鏡像只讀的容器模板,簡言之就是系統鏡像文件。首先,向發出請求創建一個鏡像并且指定容器內要運行的命令。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第一篇 Part 1: An Introduction。...

    yacheng 評論0 收藏0

發表評論

0條評論

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