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

資訊專欄INFORMATION COLUMN

docker的簡(jiǎn)介-安裝-pull-push-Dockfile

why_rookie / 2918人閱讀

摘要:安裝還是在上,上建議別折騰。也就是說(shuō)本地是空的。是否截?cái)囡@示中間層鏡像只是顯示倉(cāng)庫(kù)一系列鏡像的集合。的后臺(tái)搜索然后直接上傳鏡像,會(huì)展開(kāi)說(shuō)。在本地構(gòu)件一個(gè)新的鏡像保存對(duì)容器修改,并再次使用。然后我們安裝上了。

1.1docker概要

一個(gè)容器就是宿主機(jī)的一個(gè)進(jìn)程。對(duì),就是個(gè)進(jìn)程。原理方面不大懂,但是
看更多l(xiāng)inux 進(jìn)程 文件管理 網(wǎng)絡(luò) 等方面應(yīng)該會(huì)加深理解。namespace+cgroupchroot

1.2安裝docker

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

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

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 //說(shuō)明安裝成功


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

安裝高版本(推薦) 把私有倉(cāng)庫(kù)添加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 簡(jiǎn)單理解docker

鏡像可以理解為一個(gè)目錄,啟動(dòng)容器x的時(shí)候,chroot 到容器 x。
可以用docker info 查看。

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

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

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

REPOSITORY          TAG                 IMAGE ID            CREATED            VIRTUAL SIZE

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

docker pull redis:2.8.19

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

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

如果沒(méi)有指定tag,就使用默認(rèn)latest分支(tag),如果沒(méi)有指定命令,就使用默認(rèn)命令(redis是/entrypoint.sh redis -server)。守護(hù)石容器運(yùn)行在后臺(tái),這樣我們繼續(xù)留在宿主機(jī)中

docker inspact【pid】 查看容器更詳細(xì)信息,pid可根據(jù)docker ps[-a]得到。
注意:在啟動(dòng)docker的時(shí)候,只能啟動(dòng)docker images里有的鏡像,如果沒(méi)有,會(huì)自動(dòng)拉取。但是網(wǎng)速慢的話還是先停止,我們有下面的加速器。下載這個(gè)redis完全是看他還小點(diǎn)。。

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

啟動(dòng)為

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", 

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

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

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

2.1 docker的鏡像與倉(cāng)庫(kù)

一些命令和概念拾遺:
docker info 命令查看docker 的存儲(chǔ)驅(qū)動(dòng)及對(duì)應(yīng)信息。
docker images -af --no(是否截?cái)鄆mage id)-a顯示中間層鏡像 -q只是顯示imageid

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

2.2 拉取遠(yuǎn)程鏡像

(可在https://hub.docker.com/注冊(cè) ,然后搜索:內(nèi)有鏡像評(píng)分和下載數(shù)量)
docker search -s 3 lnmp
docker pull domainer/centos-lnmp 這樣會(huì)比較慢,推薦使用國(guó)內(nèi)鏡像加速

加速可參考:
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

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

docker push 上傳docker鏡像,2.3會(huì)展開(kāi)說(shuō)。

2.3在本地構(gòu)件一個(gè)新的鏡像

保存對(duì)容器修改,并再次使用。
軟件形式打包,做分發(fā)。

docker commit 通過(guò)容器構(gòu)件鏡像

-a author
-m message
-p pause 

具體就靠man

演示我把本地的一個(gè)鏡像推送到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

我們運(yùn)行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

成功后就進(jìn)入了這個(gè)鏡像

在這個(gè)容器裝個(gè)szrz吧,還是因?yàn)楸容^小。。

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

然后我們安裝上了。rzsz這兩個(gè)兄弟

退出當(dāng)前容器

[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,可以通過(guò)

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

因?yàn)樯厦娴溺R像我是從dockerhub上下載的,安裝了rzsz后提交不上到daocloud,以為是**問(wèn)題。下面我們重新拉取從國(guó)內(nèi)的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上傳鏡像 (收費(fèi)的,收費(fèi)的,收費(fèi)的。上傳不上去說(shuō)權(quán)限限制。)

docker login daocloud.io

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

那我們還是在在hubdocker上在實(shí)驗(yàn)下commitpush吧:

先pull一個(gè)nickistre/lamp的鏡像,我們?cè)谏厦姘惭b一個(gè)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

這次我們安裝個(gè)nginx

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

  

...
安裝好后

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

然后我們?cè)谌萜髦袉?dòng)nginx

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

好,我們切換到宿主機(jī),運(yùn)行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 

測(cè)試下看到80端口對(duì)應(yīng)是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沒(méi)問(wèn)題,把修改好的容器提交為鏡像

docker commit  f4cf34e4cac6 yaxiaomu/lnamp

詳細(xì)信息可以這么寫(xiě):實(shí)際操作我沒(méi)寫(xiě)
-a 作者名字
-m 鏡像信息

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

都會(huì)返回一個(gè)新生成的鏡像id

這樣就沒(méi)問(wèn)題了。下面我們將更改上傳到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# 

雖然很漫長(zhǎng),這樣是成功了,感覺(jué)速度好慢。。

2.4我們用docker bulid dockerfile 文件構(gòu)件鏡像(簡(jiǎn)介~)

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

# 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

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

docker build -t yaxiaomu/ubuntu_memcache .

.代表是當(dāng)前目錄里有dockerfile 這個(gè)文件

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

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

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

相關(guān)文章

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

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

    BlackHole1 評(píng)論0 收藏0
  • Docker-Compose學(xué)習(xí)筆記(1)安裝簡(jiǎn)介

    摘要:概述是一個(gè)用來(lái)定義和運(yùn)行復(fù)雜應(yīng)用的工具。使用,用戶通過(guò)來(lái)進(jìn)行構(gòu)建。使用,不再需要使用腳本來(lái)啟動(dòng)容器。在配置文件中,所有的容器通過(guò)來(lái)定義,然后通過(guò)腳本來(lái)啟動(dòng),停止和重啟應(yīng)用,和應(yīng)用中的服務(wù)以及所有依賴服務(wù)的容器。 概述 Docker Compose是一個(gè)用來(lái)定義和運(yùn)行復(fù)雜應(yīng)用的Docker工具。使用Compose,你可以在一個(gè)文件中定義一個(gè)多容器應(yīng)用,然后使用一條命令來(lái)啟動(dòng)你的應(yīng)用,完成...

    shiyang6017 評(píng)論0 收藏0
  • Docker-Compose學(xué)習(xí)筆記(1)安裝簡(jiǎn)介

    摘要:概述是一個(gè)用來(lái)定義和運(yùn)行復(fù)雜應(yīng)用的工具。使用,用戶通過(guò)來(lái)進(jìn)行構(gòu)建。使用,不再需要使用腳本來(lái)啟動(dòng)容器。在配置文件中,所有的容器通過(guò)來(lái)定義,然后通過(guò)腳本來(lái)啟動(dòng),停止和重啟應(yīng)用,和應(yīng)用中的服務(wù)以及所有依賴服務(wù)的容器。 概述 Docker Compose是一個(gè)用來(lái)定義和運(yùn)行復(fù)雜應(yīng)用的Docker工具。使用Compose,你可以在一個(gè)文件中定義一個(gè)多容器應(yīng)用,然后使用一條命令來(lái)啟動(dòng)你的應(yīng)用,完成...

    zxhaaa 評(píng)論0 收藏0
  • Flux7 Docker 系列教程(一):Docker 簡(jiǎn)介

    摘要:本系列教程翻譯自,系列共有九篇,本文譯自第一篇。,一種新的容器化技術(shù),因?yàn)檩p量級(jí)和便攜化而受到廣泛關(guān)注。本篇文章是系列教程的第一篇。鏡像只讀的容器模板,簡(jiǎn)言之就是系統(tǒng)鏡像文件。首先,向發(fā)出請(qǐng)求創(chuàng)建一個(gè)鏡像并且指定容器內(nèi)要運(yùn)行的命令。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第一篇 Part 1: An Introduction。...

    zhaofeihao 評(píng)論0 收藏0
  • Flux7 Docker 系列教程(一):Docker 簡(jiǎn)介

    摘要:本系列教程翻譯自,系列共有九篇,本文譯自第一篇。,一種新的容器化技術(shù),因?yàn)檩p量級(jí)和便攜化而受到廣泛關(guān)注。本篇文章是系列教程的第一篇。鏡像只讀的容器模板,簡(jiǎn)言之就是系統(tǒng)鏡像文件。首先,向發(fā)出請(qǐng)求創(chuàng)建一個(gè)鏡像并且指定容器內(nèi)要運(yùn)行的命令。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第一篇 Part 1: An Introduction。...

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

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

0條評(píng)論

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