Docker使用与进阶

1.Docker介绍

  • 容器技术是一种进程隔离技术

  • 应用可以运行在一个个相互隔离的容器,与虚拟机不同的是:

    • 应用运行时公用一个Kernel容器技术
    • 提升了对系统资源利用率
    • 提高了应用的部署迁移效率
  • docker官方文档命令行手册

  • runoob Docker 教程

1.1 Docker介绍

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

1.2 Docker概念

Docker虚拟化

1.3 Docker架构

Docker工作架构

2.Docker安装与服务

2.1 Docker安装

#docker更新到最新版本
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
#也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh

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的整体信息
docker version      #查看docker版本
docker images       #查看本地已有镜像
docker ps[-a]       #查看容器运行状态
docker inspect CONTAINER|IMAGE #查看某个docker或镜像的整体json配置参数
  • Docker加速器配置
    /etc/docker/daemon.json
    {"regeistry-mirrors":["https://xxxx.mirror.aliyuncs.com"]}

  • 重启docker服务
    service docker restart

  • 搜索和下载容器

docker search <images_name>  #搜索镜像
docker pull <images_name>    #下载镜像
docker images        #查看本地镜像

3.2 运行容器

  • 运行docker容器
docker run -itd centos /bin/bash  #运行docker容器
docker run -itd --privileged --name="test" centos  #运行具有真实root管理权限的docker容器
docker ps [-a]                      #查看运行中的容器
docker attach <CONTAINER ID>        #进入后台运行的容器
  • 登录docker
docker exec -it <ContainerID>|<Names> bash
#docker exec -it <ContainerID>|<Names> sh
exit 退出,结束运行
按ctrl+P+Q退出,后台继续运行
docker run -itd --name test vsr-vpp-frr:v2
  • SSH登录
    如果容器有启动SSH服务,可以通过SSH登录容器

  • 数据复制

    • 把容器的文件或目录复制到本机
      docker cp 98d01104e30c:/www/ /www/
    • 把主机文件或目录映射到容器
      docker run 创建容器时,将主机/home/data映射指定目录/data中
      docker run -itd -v /home/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
    5. 修改docker提交tag,用于标记提交IP等信息:docker tag my_centos:V2 192.168.110.100/library/repo_name:V3,其中library为远端项目名称,repo_name为镜像名称,:后面v3表示版本号;
    6. 登录harbor docker login 192.168.110.100 ,如果不输入IP,默认登录是docker官方地址https://hub.docker.com;
    7. 推送到harbor上,docker push 192.168.110.100/library/repo_name:V3
  • 使用Dockerfile构建镜像

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

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

    3. Dockerfile示例

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

发表评论

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