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
相关文章
相关标签/搜索