一、docker简介

  docker 是一个开源的应用容器引擎,docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

  容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

二、docker的应用场景

  • Web 应用的自动化打包和发布。

  • 自动化测试和持续集成、发布。

  • 在服务型环境中部署和调整数据库或其他的后台应用。

  • 解决软件跨境迁移的问题

三、docker的安装

  docker在各个平台均可以使用,centos、ubuntu、mac、windows等,这里就不一一列举了,附上各个平台的安装链接

四、docker的架构

  • 镜像(image):用于创建docker容器的模板
  • 容器(container):独立运行的一个或一组应用,是镜像的实体
  • 仓库(repository):用来保存镜像的

五、docker进程相关命令

  1、启动docker

  1. systemctl start docker

  2、停止docker

  1. systemctl stop docker

  3、查看docker状态

  1. systemctl status docker

  4、重启docker

  1. systemctl restart docker

  5、设置开机启动

  1. systemctl enable docker

六、docker镜像相关命令

  1、查看镜像,查看本地所有的镜像

  1. docker images

  2、查询所有镜像的ID

  1. docker images -q

  3、搜索镜像:从网络中查询需要的镜像

  1. docker search 镜像的名称

  4、拉取镜像:从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号, 如果不指定,则是最新版,如果不知道镜像的版本号,可以去hub.docker.com去查询

  1. docker pull 镜像名称

  5、删除指定镜像:

  1. docker rmi 镜像id

  6、删除所有镜像:

  1. docker rmi `docker images -q` # 注意` 是键盘ESC下面的键

七、容器相关命令

  1、查看正在运行容器

  1. docker ps

  2、查看所有容器

  1. docker ps -a

  3、创建并启动容器

  1. docker run 参数 镜像名称:版本号
  2.  
  3. 参数说明:
  4. * -i:保持容器运行,通常与-t同时使用,加上 it 这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭,
  5. * -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
  6. * -d:以守护(后台)模式运行容器,创建一个容器在后台运行,需要使用docker exec 进入容器,退出后,容器不会关闭。
  7. * -it 创建的容器一般称为交互式容器, -id 创建的容器一般称为守护式容器
  8. * --name: 为创建的容器命名
  9. * -p 宿主机端口:容器端口
  10.  
  11. * -e:环境配置
  12. * --restart:是否自动重启

    案例:docker run -id --name=community4 -p 8000:8000 -p 2223:22 -p 8005:8005 -e PYTHONIOENCODING=utf-8 --restart=always community:5.0 /start.sh

  docker 默认的的编码是ascii,所以在创建容器的时候,指定 -e PYTHONIOENCODING=utf-8

  在创建容器是添加-–restart=always选项,保证docker服务启动时,容器会自动运行

  4、进入容器

  1. docker exec 参数 容器id或者容器名 /bin/bash # 退出容器,容器不会关闭
  2. 示例:docker exec -it haoshun /bin/bash

  5、停止容器

  1. docker stop 容器名称或者容器id

  6、启动容器

  1. docker start 容器名称或者容器id

  7、删除容器:如果是运行状态则删除失败,需要停止容器才能删除

  1. docker rm 容器名称或者容器id

  8、查看容器信息

  1. docker inspect 同期名称或者容器id

八、docker数据卷

  配置数据卷

  1. docker run ... -v 宿主机目录(文件):容器内目录(文件)...

  注意事项

  1. 目录必须是绝对路径
  2. 如果目录不存在,会自动创建
  3. 可以挂在多个数据卷

  举例:通过多个-v 可以配置多个数据卷

  1. docker run -it --name=test2 -v /vagrant/test_data2:/home/test_data2 -v /vagrant/test_data3:/home/test_data3 ubuntu:16.04

九、docker转镜像

  1、使用容器打包成镜像

  1. docker commit 容器id 要生成的镜像名:版本号

  2、将镜像打包成压缩文件

  1. docker save -o 压缩文件名称 要压缩的镜像名:版本号

  3、加载压缩包形式的镜像文件

  1. docker load -i 压缩文件名称

  注意:通过目录挂载的形式的文件,在通过容器制作镜像的过程中,将不会被打包到镜像中,直接在镜像内的文件则可以被打包到镜像内

十、dockerfile构建docker镜像文件

  • Dockerfile 是一个文本文件

  • 包含了一条条的指令

  • 每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像

  • 对于开发人员:可以为开发团队提供一个完全一直的开发环境

  • 对于测试人员:可以直接那开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作

  • 对于运维人员:在部署时,可以实现应用的无缝移植

案例需求:自动以centos7镜像

  • 默认登录的路径为/usr

  • 可以使用vim

  1. 1、定义父镜像: FROM centos:7
  2. 2、定义作者信息:MAINTAINER Se7eN_HOU
  3. 3、执行安装vim命令:RUN yum install -y vim # 注意,-y 表示当执行程序需要选择是会自动选择y,如果没有该参数会一直停留在选择处
  4. 4、执行默认的工作目录:WORKDIR /usr
  5. 5、定义容器执行的命令:CMD /bin/bash

  执行dockerfile生成镜像

  1. docker build -f dockerfile文件的路径 -t 设置新的镜像的名称和版本号 . # 注意最后的点,代表生成的镜像路径
  2. -f 表示dockerfile路径
  3. -t 设备新镜像的名称和版本号
  4. 最后的. 表示生成镜像的路径,为当前路径

十一、docker的常用配置

  不同平台的配置方法大同小异,就不一一举例了,但是一下配置确实非常常用的,可自行百度解决。

  1、docker 配置SSH,可以远程访问docker

  2、docker 配置支持中文,默认docker是不支持中文,网上大部分是临时性的解决方案,《docker容器中添加中文字符的支持》中有永久解决办法

  3、《配置docker中的服务跟随docker启动而自动启动

docker使用详解的更多相关文章

  1. Docker命令详解

    Docker命令详解   最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...

  2. Docker系列10—容器编排工具Docker Compose详解

    本文收录在容器技术学习系列文章总目录 1.Docker Compose 概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用Compose文件来配置 ...

  3. docker pull 详解

    docker pull 用于从镜像仓库中拉取或更新指定镜像,用法如:docker pull centos ,默认是从 Docker Hub 中拉取镜像 在拉取镜像前,我们可以先配置 docker 加速 ...

  4. docker 操作命令详解

    docker attach命令-登录一个已经在执行的容器 docker build 命令-建立一个新的image docker commit命令-提交一个新的image docker cp命令-将容器 ...

  5. docker入门级详解

    Docker 1 docker安装 yum install docker [root@topcheer ~]# systemctl start docker [root@topcheer ~]# mk ...

  6. Docker网络详解——原理篇

    安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络). none .host 网络模式 简介 Host 容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP ...

  7. docker 容器详解

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

  8. Docker入门详解——安装docker并利用docker搭建lnmp

    首先我们需先安装docker环境,这个比较简单,以centos7为例 docker在centos7上安装需要系统内核版本3.10+,可以通过uname -r查看内核版本号,如果版本不符请自行查阅资料更 ...

  9. Docker网络详解

         当 Docker 启动时,会自动在主机上创建一个 docker0 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机.它会在挂载到它的网口之间进行转发.      ...

  10. Docker Dockerfile详解

    http://blog.csdn.net/wsscy2004/article/details/25878223 如何使用 Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等 ...

随机推荐

  1. mysql的cpu飙升原因及处理

     Mysql 批量杀死进程 正常情况下kill id,即可,但是有时候某一异常连接特别多的时候如此操作会让人抓狂,下面记录下小方法: use information_schema; select co ...

  2. 学习Git(二)

    常用命令 git add 添加 git status 查看状态 git status -s 状态概览 git diff 对比 git diff --staged 对比暂存区 git commit 提交 ...

  3. 数据分析之Pandas操作

    Pandas pandas需要导入 import pandas as pd from pandas import Series,DataFrame import numpy as np 1 Serie ...

  4. 自定义XML文件模板步骤

  5. Azure DevOps (八) 通过流水线编译Docker镜像

    上一篇文章我们完成了最简单的传统部署:上传应用到服务器上使用守护进程进行应用的部署. 本篇文章我们开始研究容器化和流水线的协作. 在开始操作之前,我们首先需要准备一下我们的dockerfile,这里我 ...

  6. ctfhub web信息泄露备份文件下载(vim缓存 Ds-Store)

    Vim缓存 进入环境由于不懂得vim是什么借鉴大佬的博客 网页提示flag在index.php中我们按着这个思路去找 将文件保存下来因为是swp文件我们用kail进行打开 使用vim -r index ...

  7. 用Node处理文件上传

    前言 在Web开发中,文件上传是一个非常常见.非常重要的功能.本文将介绍如何用Node处理上传的文件. 需求分析 由于现在前后端分离很流行,那么本文也直接采用前后端分离的做法.前端界面如下: 用户从浏 ...

  8. Javascript Symbol 隐匿的未来之星

    ES6中基础类型增加到了7种,比上一个版本多了一个Symbol,貌似出现了很长时间,但却因没有使用场景,一直当作一个概念层来理解它,我想,用它的最好的方式,还是要主动的去深入了解它吧,所以我从基础部分 ...

  9. spark配置双master时一直处于standby的情况

    一.情况描述 按照如下配置,使用zookeeper监听 SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspa ...

  10. mysql 合并查询结果

     UNION 使用 UNION 关键字是,数据库系统会将所有的查询结果合并到一起,然后去除掉相同的记录:   UNION ALL 使用 UNION ALL,不会去除掉系统的记录: