docker其实就像虚拟机一样的,有自己的操作系统,可以把虚拟机导出为iso,zip等类型文件,之后支持在另外的docker环境下导入进去,并且能保持一致的进行运行。

        对于迁移服务器,维护等等比较方便,只要有能运行docker的环境,你的服务器数据配置和环境不用重新配置,直接导入docker运行,几分钟就能保证你的网站能在极速时间内得以正常运行。反正我以前维护自己的网站时候,又一次尝到了苦头,服务器环境不一样得重新装上环境并且配置好。还得备份数据,下载下来又上传到新的服务器,花费了很多没有必要的时间,很是苦恼。有时候一些配置你还会忘了,半天网站不能正常运行。

1.安装(ubuntu 16.04)

sudo apt-get install apt-transport-https

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"

sudo apt-get update

sudo apt-get install -y lxc-docker




启动服务 : service docker start

显示docker版本: docker version

显示docker系统信息:dcoker info


     //安装|lamp教程

http://www.laozuo.org/8303.html   安装 lamp

/etc/init.d/apache2 restart  重启apache服务

2.镜像


  2.1  获取镜像   docker pull 仓库地址:版本号 ubuntu(镜像名称)

                       默认:   docker pull ubuntu 

       docker tag mysql:oldversion   新名称:新版本号

  

  2.2  显示管理镜像: docker images

       

       通过镜像id显示镜像详细信: docker inspect  id(镜像id)

  

  2.3. 搜索镜像: docker search  mysql(搜索mysql镜像)



  2.4  删除镜像: docker rmi  镜像id  



  2.5  创建镜像: docker commit -a "author name" -m "meaasge" 容器id  "镜像名称":版本号 (-p 暂停容器运行)



  2.6  镜像文件保存到本地或者从本地导入到docker镜像管理:



           导出: docker save -o  "文件名" ubuntu:latest  指定镜像变为本地存储的文件



  导入: docker load --input(<)  "文件名"



  2.7  上传镜像: docker push 名称:版本 


3.容器(1). 对容器外部的操作


     3.1创建容器

        docker create -it 镜像id/标签


     3.1.2创建并且运行容器

        docker run ubuntu /bin/bash


     3.1.3守护状态运行(进入后台运行)

         docker -d ubuntu /bin/bash -c "whlie true;doc echo hello"


     3.2运行容器 

         docker start 容器id


     3.3获取容器输出内容

      

        docker logs 容器id


    3.4停止容器


        docker stop 容器id

     

    3.5 重启容器

      

        docker restart 容器id

     

     3.5 .1 查看容器情况


        docker ps -a(所有的信息) -q(终止的)

     

    3.6 删除容器  (-f 强制删除,-l 删除容器的连接但是保留容器,-v删除容器挂载的数据卷)


       docker rm 容器id


    3.7 导入和导出容器


           3.7.1 导出容器


    docker export 容器id >"容器.zip"


  3.7.2 导入容器 


    docker import  "容器.zip"


  4.容器(2). 容器内部的操作

  

     4.1 进入容器 attach  exec  nsenter 等命令


        docker  attach 容器id/name(不太推荐此命令,不方便)


docker exec  -it 容器id

  

  5.仓库


     5.1 docker login 登录


     5.2 指定注册服务器和仓库,下载镜像:


          docker pull dl.dockerpool.com:5000/ubuntu:12.04

     

     5.3 创建私有仓库


        docker run -d -p 5000:5000 registry


docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry   将上传的镜像文件默认的路径/tmp/registry 变为本地的/opt/data/registry


        vim /etc/default/docker

        DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=10.128.0.9:5000"

curl http://10.128.0.10:5000/search  //查询私有仓库的镜像信息


        exec "$DOCKER" -d $DOCKER_OPTS --insecure-registry 10.128.0.9:5000



 6.数据管理  DOCKER_OPTS="--insecure-registry 10.10.105.71:5000



    6.1 数据卷挂载  -v 本地目录:容器目录



    docker run -i -t -p --name test -v /root/newdir/:/root/ ubuntu /bin/bash  

    

       此时容器中已挂载 newdir的文件到了/root里面,就可以使用了。



    6.2 数据卷容器  --volumes-from  数据卷容器名称/id


       docker run -it --volumes-from  数据卷容器名称 ubuntu /bin/bash   此时数据卷容器的数据会挂载到当前的容器之中

      

 7.网络基本配置


      7.1端口映射


        -P   随机映射


-p   本机端口:容器端口


      7.2  --link 连接的容器:连接别名


      docker run -i -t -P --name web --link db:db ubuntu /bin/bash


 8.使用DockerFile创建镜像


        例子:在ubuntu镜像基础上安装inotify-tools nginx apache2 openssh-server 等软件

#Nginx 

#version 0.0.1

1.FROM ubuntu  #基于哪个镜像去制作


        2.MAINTAINER dreammo 1171031749@qq.com #作者


3.RUN apt-get update && apt-get install y inotify-tools nginx apache2 openssh-server


         1.FROM 镜像源

2.MAINTAINER 维护者信息

3.RUN 操作镜像

4.EXPOSE 暴露端口映射

5.CMD

6.ENV key value 环境变量

7.ADD <src>  <dest>  复制指定的<src>到容器中的<dest>

         8.COPY <src> <dest>

9.ENTRYPOINT 配置容器启动后执行的命令

10.VOLUME ["/data"] 创建一个可以从本地或其他容器挂载的挂载点

11.USER user 指定运行容器时的用户名/UID

         12.WORKDIR /path/to/workdir

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐