一:什么是docker容器?
docker容器简单说来就是码头工具。
docker是一个开源的的应用容器引擎,docker的图标是一个鲸鱼上有很多集装箱,docker就是鲸鱼,他上面的集装箱就代表各个容器,docker容器在目前的环境中大部分公司docker容器已经代替了vm虚拟化,docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,开销很低。docker解决了服务器昂贵的问题,生产环境和测试环境不一致的问题。
二:vm和docker的区别
docker的优点
( 1 ) docker体积小,占用资源少,一般为MB。
( 2 )启动速度快,docker是容器,也是进程,容器进程启动速度比vm虚拟机快,启动几乎是秒级。
( 3 )docker容器时接近原生的,所以性能比较好。
( 4 )docker可以实现弹性、负载、动态的高可用策略。
vm的缺点
( 1 )vm体积大,占用资源也比较大,一般为GB。
( 2 )启动速度慢,vm是操作系统,所以启动比docker容器慢,一般都是分钟级。
( 3 )vm虚拟机并不是接近原生的,所以性能比docker容器差。
( 4 )vm可以实现备份、灾容、迁移等高可用策略。
三:docker的基本概念
docker的核心组件
docker的基本组成是由镜像(image)、容器(container)、仓库(repository)构成。
( 1 )docker镜像:
鲸鱼背上拖着的所有集装箱就是一个镜像
docker镜像是一个只读模板,基于创建Docker容器,类似于虚拟机镜像,可以将它理解为一个面向Docker 引擎的只读模板,包含了文件系统,镜像是创建 Docker 容器的基础。
( 2 )Docker容器:
是一个镜像的运行实例。容器由镜像创建,类似于一个轻量级的沙箱,Docker 利用容器来运行和隔离应用。容器是从镜像的应用运行实例,可以将其启动,开始,停止,删除,而这些容器都是相互隔离,互不可见的。镜像自 身是只读的,容器从镜像启动的时候, Docker 会在镜像的最上层创建一个可写层,镜像本身保持 不变。
( 3 )Docker 仓库:
Docker仓库是Docker镜像库,类似于代码仓库,是docker 集中存放镜像文件的场所。
四:docker容器的状态
docker容器一共有四种状态:运行、已暂停、重新启动、已退出。
五:docker常见的命令
docker start docker //启动docker
docker restart docker //重启docker
docker stop dokcer //关闭docker
docker status docker //查看docker的运行状态
docker version或docker info //查看docker版本号信息
docker --help //帮助命令
dokcer镜像命令
docker images //查看镜像列表
docker search 镜像名 //搜索镜像
docker pull 镜像名 //拉取镜像
docker run 镜像名 //运行镜像
docker rmi -f 镜像名/镜像id //删除一个镜像
docker rmi -f $(docker images -aq) //删除所有镜像
docker image rm 镜像名称/镜像ID //强制删除镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字 //保存镜像
docker load -i 镜像保存文件位置 //加载镜像
docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG //修改镜像标签
docker容器
docker ps //查看正在运行的容器列表
docker ps -a //查看所有容器
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash //运行一个容器
docker stop 容器名/容器ID //停止容器
docker restart 容器ID/容器名 //重启容器
docker start 容器ID/容器名 //启动容器
docker kill 容器ID/容器名 //kill掉容器
docker cp 容器ID/名称: 容器内路径 容器外路径 //从容器拷贝到本地
docker cp 容器外路径 容器ID/名称: 容器内路径 //从本地拷贝到容器
docker rm -f 容器名/容器ID //删除一个容器
docker rm -f $(dockerps -aq) //删除全部容器
docker exec -it 容器名/容器ID /bin/bash //进入容器
docker attach 容器名/容器ID //进入容器
Ctrl + p + q //退出容器并且不会关闭容器
docker logs -f --tail=要查看末尾多少行 默认all 容器ID //查看容器日志
六:centos安装docker容器
- Docker 要求 CentOS 系统的内核版本高于 3.10,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本
- 如果安装过请先卸载
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装依赖设置yum仓库
安装依赖:
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
- 安装docker
yum install docker-ce docker-ce-cli containerd.io
- 启动并加入开机启动
systemctl start docker
systemctl enable docker