一.docker 简介
- docker 解决的问题?
软件可以带环境安装,也就是说安装的时候可以将原始环境一模一样的复制过来。开发人员利用docker可以消除协作编码时的“在我的机器上可以正常工作”的问题。解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。 - docker的目标?
Build,Ship and Run any app,anywhere,也就是通过对应用组件的封装,分发,部署,运行等生命周期的guan管理,使用户的App(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。 - why docker ?
更轻量:基于容器的虚拟化,仅包含业务所需的runtime环境。
更高效:无操作系统虚拟化开销。
更便捷,更灵活:分层的存储和包管理,devops理念;支持多种网络配置。
二 .docker的安装(centos)
1.docker支持以下的centos版本:centos 7(64-bit) ,centos 6.5(64-bit)或更高的版本
2.查看自己的内核:
uname -r :用于打印当前系统的版本
cat /etc/redhat-realese
3. centos6.8安装Docker:
①yum install -y epel-release
②yum install -y docker-io
③安装后的配置文件:/etc/sysconfig/docker :
④启动docker后台服务:service docker start
⑤docker version
备注: 配置阿里的yum源:https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11QwJ8UO
附:centos 7 安装Docker: docker开发官方指南:https://docs.docker.com/engine/install/centos/
1> 安装必要依赖包
sudo yum install -y yum-utils
device-mapper-persistent-data
lvm2
2> 添加阿里镜像稳定版仓库:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3> 添加阿里源时有时会报错,如果报错,使用如下命令使用官方源:
#删除异常源
sudo rm -f /etc/yum.repos.d/docker-ce.repo
#使用官方源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4>更新yum缓存
sudo yum makecache fast
5> 安装Docker-CE
sudo yum install -y docker-ce docker-ce-cli containerd.io
4.阿里云镜像加速:
①登录阿里云:https://cr.console.aliyun.com/cn-beijing/instances/mirrors
②注册完毕后,获取个人的镜像加速地址:https://5bhg1rs9.mirror.aliyuncs.com
③在 /etc/sysconfig/docker 中的 other_args="–registry-mirror=https://5bhg1rs9.mirror.aliyuncs.com"
④重启docker使其生效:service docker restart
⑤查看docker进程:ps -ef | grep docker
注:针对docker客户端版本大于1.10.0的用户,可以通过修改daemon配置文件 /etc/docker/daemon.json来使用加速器:{“register-mirrors”:[“https://5bhg1rs9.mirror.aliyuncs.com”]},然后执行 systemctl daemon-reload , systemctl restart docker
三 .docker三要素
- 镜像(image):就是一个只读的模板。可以用来创建docker容器,一个镜像可以创建多个docker容器。
- 容器(container):镜像的实例化
- 仓库(repository):集中存放镜像的位置。
四.docker vs 传统虚拟机
五.docker操作命令
-
帮助命令:
① docker version ② docker info ③ docker --help
-
镜像命令:
①docker images :查看镜像 -a:列出本地全部的镜像(含中间层镜像) -q:显示镜像的id --digests:显示镜像的摘要信息 --no-trunc:显示完整的镜像信息 ②docker search :查找镜像 -s:点赞数大于XX,docker search -s 30 tomcat --no-trunc:显示完整的镜像描述 ③docker rmi 镜像名称: 删除镜像,docker rmi -f hello-world:latest 删除多个:docker rmi -f hello-world ngix:3.2 删除全部的镜像:docker rmi -f $(docker images -aq) ④docker pull 镜像名称: 安装镜像, docker pull hello-world
-
容器命令:
① docker ps :查看正在运行的容器 -a:查看所有的容器 -l:显示最近创建的容器 -n:显示最近n个创建的容器: docker ps -n 3 -q:静默模式,只显示容器编号 --no-trunc:不截断输出 ② docker start 容器id或容器名: 启动容器 ③ docker restart 容器id或容器名: 重启容器 ④ docker stop 容器id或容器名: 停止容器 docker kill 容器id或容器名:强制停止容器 ⑤ docker rm 容器id: 删除容器 -f:强制删除,包括未停止的容器。 ⑥ docker run [options] images [commands][args]:创建一个容器,docker run -it 容器id ⑦ docker run -d centos:以后台模式启动一个容器。docker容器后台运行,就必须要有一个前台进程。容器运行的命令如果不是那些一直挂起的命令,就会 自动退出。docker run -d centos /bin/sh -c "while true;do echo chenhao;sleep 3;done" ⑧ docker attach 容器id:进入容器,直接进入容器启动命令的终端,不会启动新的进程 ⑨ docker exec -it 容器id /bin/bash:进入容器,是在容器中打开新的终端,并且可以启动新的进程,也可以不进入容器但获得结果:docker exec -it 容器id ls -l /tmp ⑩ docker cp 容器id:/tmp/yum.log /root: copy 容器id中tmp下的log到宿主机root下
注:docker run 命令的options参数说明如下图所示