目录
1、概述
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
2、相关网站地址
3、基本组成
-
镜像( image ):
docker镜像就相当于一个模板,可以通过这个模板来创建多个容器服务(最终服务运行或项目运行就是在容器中)。
-
容器( container ):
docker利用容器技术,独立运行一个或者一个组应用,通过镜像创建的
基本命令:启动、停止、删除等
-
仓库( repository ):
存放镜像的地方。共有仓库和私有仓库
4、安装Docker
条件:centos7版本以上
-
更新yum软件包索引
#CentOS 7 yum makecache fast #CentOS 8 yum makecache
-
卸载旧版本Docker
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
下载安装工具
yum install -y yum-utils
-
设置镜像的仓库
#默认是国外的 yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo #安装阿里云镜像仓库 yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
安装Docker相关的源 docker-ce 社区版 docker-ee 企业版
yum install docker-ce docker-ce-cli containerd.io
-
判断是否安装成功
docker version
-
运行HelloWorld
#从docker仓库中根据关键字查询镜像 docker search 关键字 #run命令时,先再本地找是否有此镜像,有则运行本地的,没有则去镜像仓库拉取,如果镜像仓库中没有,则会报错。镜像仓库有则拉取到本地再运行 docker run hello-world
-
查看所有镜像
docker images #查看所有镜像 docker ps #查看正在运行的镜像 docker ps -a #查看所有镜像
-
卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
-
删除资源
rm -rf /var/lib/docker #docker的默认工作路径
5、底层原理
1.什么是docker
docker是一个client-server结构的系统,docker守护进程运行在主机上,然后通过socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。容器,是一个运行时的环境,就是我们说的集装箱。
2.docker与传统虚拟机对比
-
传统虚拟机,虚拟出一条硬件,运行一个完整的硬件,然后在这个系统上安装和运行软件
-
容器内的应用直接运行在宿主机内容,容器是没有自己的内容,也没有虚拟硬件,所以轻便
-
每个容器都是相互隔离的,每个容器都有属于自己的文件系统,互不影响
7、常用命令
#设置开机自动启动
systemctl enable docker
#docker启动
systemctl start docker
service docker start
#重启docker服务
systemctl restart docker
sudo service docker restart
#关闭docker
systemctl stop docker
service docker stop
#查看版本
docker version
#查看docker信息
docker info
#搜索镜像
docker search 关键字
#下载镜像,默认为最新版本
docker pull 镜像名字:版本
#删除镜像,多个容器通过空格将id分开
docker rmi -f 镜像ID
#进入正在运行的容器
docker exec -it 镜像id /bin/bash
#启动容器
docker start 容器id
#重启容器
docker restart 容器id
#停止容器
docker stop 容器ID
docker kill 容器ID
#删除容器
docker rm 容器ID
docker rm -f 容器ID #强制删除,可以删除运行中的容器
#查询正在运行的容器
docker ps
#查询历史运行过的容器
docker ps -a
#后台启动容器,但是必须要有一个前台进程,要不然会自动停止
docker run -d 镜像名
#显示日志
docker logs -tf 容器ID #打印全部日志
docker logs -tf --tail 10 容器ID #打印最近10条日志
#查看容器进程信息
docker top 容器ID
#查看容器信息
docker inspect 容器ID
#拷贝文件到容器外
docker cp 容器ID:容器中的路径 主机目录