centos 基礎性命令

docker 使用入門

##docker 啓動快的緣由: 由於Container技術採起共享Host OS的做法,而不需在每個Container內執行Guest OS,所以創建Container不須要等待操做系統開機時間,不用1分鐘或幾秒鐘就能夠啓用,遠比須要數分鐘甚至數十分鐘才能開啓的傳統虛擬機來的快。html

install

centos 中文安裝指南:http://docker.widuu.com/installation/centos.htmlpython

  • 環境 centos 7 一下安裝都在root 用戶
    > yum update -y
    	> yum -y install docker

此命令下去 基本都能裝好mysql

  • 啓動 sudo service docker start
  • 開機啓動 sudo chkconfig docker on

helloworld

sudo docker run ubuntu:14.04 /bin/echo 'Hello world'
Hello world

命令

獲取鏡像/提交鏡像

  • pull sudo docker pull centos sudo docker pull centos[:TAG] sudo docker pull [user/]NAME[:TAG]
  • push sudo docker push user/NAME:TAG

查看鏡像信息

  • docker imagesgit

  • docker inspect imageId (獲取鏡像詳細信息)github

搜索鏡像

  • docker search [-s] imageName
    • -s 能夠填寫分數

刪除鏡像

  • docker rmi [-f] image ....
    • -f 是強制刪除

建立鏡像

  • 基於容器創造: docker commit imageId
  • 基於本地模板導入: docker save FileName Name[:TAG] | docker load < FileName
  • 基於DockerFile docker build -t {imageName} {DockerFileDir}

建立容器

容器是鏡像的一個實例web

  • docker create -it [--name Container Name ] images
    • -t 讓Docker 分配一個僞終端到標準輸入
    • -i 讓標準輸入打開
    • --name 【容器名】

啓動

  • docker start [Container Name]|[Container ID]

新建加啓動加下載

  • docker run images 當鏡像不存在時,會自動去查找,下載鏡像,並建立容器,且啓動容器 sudo docker run ubuntu:14.04 /bin/echo 'Hello world' sudo docker run -it ubuntu /bin/bash
    • -d 後臺運行

中止容器

  • docker stop imagesIdsql

    • -t =[int] 等待多少秒後關閉
  • 若是前面運行的容器,只有一個終端,則退出時,容器stopdocker

進入容器

  • docker attach imagesId
  • docker exec -it imagesId [shell]

刪除容器

  • docker rm -f imagesId

數據卷

-v

  • 容器內建數據卷 sudo docker run --name web -v /webApp IMAGE 這裏的-v 將至關於在系統中建了一個目錄,只不過這個目錄能夠共享給其它容器
  • 掛載主機目錄 sudo docker run --name web -v {hostDir}:/webApp[:讀寫權限] <IMAGE>
    • 讀寫權限 默認爲 rw,能夠改爲ro

-v 能夠屢次使用,來建立多個數據卷,也支持 掛載文件shell

--volumes-from

容器之間掛數據卷ubuntu

先建立一個容器數據卷
sudo docker run -it -v  /db --name dbdata ubuntu
來掛它
sudo docker run -it --volumes-form dbdata --name db1 ubuntu
還能夠接着掛
sudo docker run -it --volumes-form db1 --name db2 ubuntu

--volumes-from 也支持多個掛載,和-v 相似。 可是刪除麻煩,須要刪除所有掛載它的容器,同時 docker rm -v 來刪除關聯

端口

-P和-p

在容器啓動的時候用的

  • -P 爲容器中全部暴露的端口作映射,隨機映射到本地49000~49900
  • -p 爲容器中指定端口映射,能夠指定本地IP -p [hostIp:]port:ContainerPort -p[hostIp:]port:ContainerPort 。。。。

dockfile

有點相似 maven的Pom 文件 FROM centos/scala10.4

MAINTAINER qiao 306431869@qq.com
 
COPY  spark-1.5.2-bin-hadoop2.6/  /spark-1.5.2-bin-hadoop2.6/
 
ENV SPARK_HOME /spark-1.5.2-bin-hadoop2.6/
ENV PATH $PATH:$SPARK_HOME/bin

指令

  • FROM FROM <IMAGE> or FORM <IMAGE>:<TAG>

  • MAINTAINER MAINTAINER <Name>,做者信息

  • RUN 能夠多條

    • RUN <COMMAND> 至關於 在終端中運行命令 ,至關於 /bin/sh -c
    • RUN ["executable","param1","param2"....]
  • CMD 只支持一條,以最後一條爲準,且會被容器啓動是指定的命令覆蓋

    • CMD <COMMAND>
    • CMD ["executable","param1","param2"....]
  • EXPOSE EXPOSE 22 80 443

  • ENV ENV KEY VALUE 環境變量,能夠被RUN 使用,在容器啓動時,也是可使用的,可是有一點須要注意:使用ssh 鏈接時 ,這些參數就沒有用了

  • ADD ADD <Src> <dest>

  • COPY COPY <Src> <dest> ADD 和COPY 功能有所重疊,均可以從本地目錄拷貝文件到鏡像中,注意:只能是Dockerfile 所在目錄的一個相對目錄,且不支持../來回 得到上級目錄的資源。即只能是Dockerfile 所在目錄及其下目錄。 COPY 就只有這一個 功能,而ADD 的src 能夠是URL。tar 文件(自動解壓)

  • ENTRYPOINT 這個命令 能夠外接參數 ENTRYPOINT <COMMAND> ENTRYPOINT ["executable","param1","param2"....]

  • VOLUME VOLUME ["/data"]

容器互聯

單機容器互聯 --link

先建立一個容器
  docker run -d --name db db/mysql
  鏈接它
  docker run -d -P --name web --link db:db web/web python app.py
  這兩個就互聯
  能夠經過 docker ps 查看
  其中 db:db ,前一個是容器名,後一個是 這個鏈接的 別名

多機互聯 Weave(搭建 docker 下的 spark 集羣)

下載安裝
>sudo wget -O /usr/local/bin/weave https://raw.githubusercontent.com/zettio/weave/master/weave
>sudo chmod a+x /usr/local/bin/weave
啓動
>weave launch
搭建 多機互聯
在須要互聯的機器上 執行上面的命令
而後:例如 以 92,93,94 爲例
讓其他幾臺機鏈接94
weave connect 10.10.1.94
啓動容器
master 94

>weave run 192.168.0.101/24 -p 8088:8080 -p 2022:22 -itd --name weave  centos/ /bin/bash
slave 93
>weave run 192.168.0.102/24 -itd centos/sparkslave2 /bin/bash /run.sh 192.168.0.101:7077
相關文章
相關標籤/搜索