Docker使用与进阶

1.Docker介绍

  • 容器技术是一种进程隔离技术
  • 应用可以运行在一个个相互隔离的容器,与虚拟机不同的是:
    • 应用运行时公用一个Kernel容器技术
    • 提升了对系统资源利用率
    • 提高了应用的部署迁移效率

1.1 Docker介绍

  • Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。
  • Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布在任何流行的Linux机器上,也可以实现虚拟化。
    Docker概念

1.2 Docker概念

Docker虚拟化

1.3 Docker架构

Docker工作架构

2.Docker安装与服务

2.1 Docker安装

2.2 Docker服务管理

  • Docker服务查看
    service docker status

  • Docker服务启动
    service docker start

  • Docker服务停止
    service docker stop

  • Docker服务开机启动
    chkconfig docker on

3.Docker操作

3.1 Docker信息查看

  • 常用命令
docker info
docker version
docker images
docker ps[-a]
docker inspect CONTAINER|IMAGE
docker history IMAGE
  • Docker加速器配置
    /etc/docker/daemon.json
    {"regeistry-mirrors":["https://xxxx.mirror.aliyuncs.com"]}

  • 重启docker服务
    service docker restart

  • 搜索和下载容器

docker search centos  //搜索镜像
docker pull centos    //下载镜像
docker images         //查看本地镜像

3.2 运行容器

  • 运行docker容器
docker run -it -d centos /bin/bash  //运行docker容器
docker ps [-a]                      //查看运行中的容器
docker attach <CONTAINER ID>        //进入后台运行的容器
  • 登录docker

    docker exec -it <ContainerID>|<Names> /bin/bash
    exit 退出,结束运行
    按ctrl+P+Q退出,后台继续运行
  • SSH登录
    如果容器有启动SSH服务,可以通过SSH登录容器

  • 数据复制

    • 把容器的文件或目录复制到本机
      docker cp 98d01104e30c:/www/ /www/
    • 把主机文件或目录复制到容器
      docker run 创建容器时,挂在指定目录
      docker run -itd -v /data:/data my/centos /bin/bash
  • 容器启停

docker start <ContainerID>|<Names>      //启动容器
docker stop <ContainerID>|<Names>       //停止容器
docker restart <ContainerID>|<Names>    //重启容器

3.3 构建镜像

  • 从容器构建镜像

    1. 运行一个容器
    2. 登录容器,修改容器内的文件或软件(例如安装httpd)
    3. 停止容器docker stop
    4. 提交容器docker commit -m "message" -a "author" docker_name my_centos:V2
  • 使用Dockerfile构建镜像

    1. 创建空目录,并新建Dockerfile文件
      FROM 基于那个镜像
      RUN 安装软件用
      MAINTAINER 镜像创建者

    2. 创建镜像
      docker build -t my/centos_nfs:v2

    3. Dockerfile示例

    FROM cnetos:6
    MAINTAINER author
    RUN yum -y install httpd
    WORKDIR /root
    ADD index.html /var/www/html
    CMD /etc/init.d/httpd start

发表评论

邮箱地址不会被公开。 必填项已用*标注