一.Docker介绍
简单来说就是容器虚拟化技术。
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。(菜鸟教程说明)
二.Docker的基本操作
2.1基本准备
本次安装我是在Centos8.0 64位 环境下进行安装的(如果你是Centos7.0也是可以的)只是有一个命令有区别。
2.2安装Docker
2.2.0 安装docker前,先卸载清除之前Docker旧版本以及相关依赖
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2.2.1 安装docker必要依赖
sudo yum -y install yum-utils device-mapper-persistent-data lvm2
2.2.2 设置下载docker的镜像源路径(国外太慢,设置成为国内镜像下载docker)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.2.3 更新yum缓存
sudo yum makecache fast(Centos7.0命令) sudo yum makecache (Centos8.0命令)
这是因为版本问题,centos8的 makecache 命令 没有 fast 该参数,解决办法为:去掉fast参数,就可以了 。
不然报错:yum makecache: error: argument timer: invalid choice: 'fast' (choose from 'timer')
2.2.4 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io #如果安装过程出现 IS this ok[y/N] 选项 记得选择 y
2.2.5 启动 Docker 后台服务
sudo systemctl start docker #检查是否安装成功 docker version
2.2.6 检查是否启动成功
ps -ef | grep docker
2.2.7 更换docker的镜像(镜像加速)
国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:
- 科大镜像:https://docker.mirrors.ustc.edu.cn/
- 网易:https://hub-mirror.c.163.com/
- 阿里云:https://<你的ID>.mirror.aliyuncs.com
- 七牛云加速器:https://reg-mirror.qiniu.com
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://你的ID.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
如果你在 /etc/docker 路径下面没有找到 daemon.json文件也不需要慌,你就直接按照上面命令执行即可
2.2.8 执行hello-world 命令
docker run hello-world
证明你在linux系统上面安装docker成功了
如果出现报错:
runc: symbol lookup error: runc: undefined symbol: seccomp_api_get
docker: Error response from daemon: cannot start a stopped process: unknown.
缺少了依赖包 ,安装即可。然后再次重新执行 docker run hello-world 即可。
yum install libseccomp-devel
具体原因参见:https://blog.csdn.net/Necrolic/article/details/106009382(非常建议阅读这篇文章)
2.2.9 Docker卸载
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
三.Docker的基本命令
#帮助命令 docker --help # 查找某一个命令帮助 docker search --help #搜索镜像 docker search 镜像名称 docker search nginx #下载镜像 docker pull 镜像名称 docker pull nginx #查看本地下载的镜像 docker images (镜像名称) 镜像版本 镜像标识 镜像时间 镜像大小 REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest d1165f221234 4 months ago 13.3kB #删除镜像 docker rmi 镜像标识(镜像id) 或者镜像名称 #强制删除镜像 docker rmi -f 镜像标识(镜像id)或者镜像名称 #运行容器 docker run hello-world 待完善