Docker容器实战【一】安装Docker
Docker容器实战【二】使用Docker初次部署Tomcat
Docker容器实战【三】搭建Docker镜像私服Harbor
Docker容器实战【四】阿里云容器服务
Docker容器实战【五】Dockerfile实战
Docker
Docker容器具有以下三大特点:
- 轻量化:一台主机上运行的多个Docker容器可以共享主机操作系统内核;启动迅速,只需占用很少的计算和内存资源。
- 标准开放:Docker容器基于开放式标准,能够在所有主流Linux版本、Microsoft Windows以及包括VM、裸机服务器和云在内的任何基础设施上运行。
- 安全可靠:Docker赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台主机。
Docker和虚拟机的区别
- VM:使用Hypervisor提供虚拟机的运行平台,管理每个VM中操作系统的运行。每个VM都要有自己的操作系统、应用程序和必要的依赖文件等。
- Docker容器:使用Docker引擎进行调度和隔离,提高了资源利用率,在相同硬件能力下可以运行更多的容器实例;每个容器拥有自己的隔离化用户空间。
Docker名词
容器、镜像、镜像层、容器编排、横向扩展
前置技能
- 掌握基础Linux命令,网络基础
- 虚拟机搭建或云服务器使用(链接)
Linux环境安装
- centos7下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/
- vmware下载地址:链接:https://pan.baidu.com/s/1ueLnub1toyG-tpKGt4195g 提取码:g9fx
- putty和FileZilla:链接:https://pan.baidu.com/s/11V1cXg_tjX4ZokWMY74Bhw 提取码:0woe
Docker卸载
如果之前安装过Docker需要卸载可以参照如下命令
# 列出当前docker相关的安装包
$ yum list installed|grep docker
containerd.io.x86_64 1.3.7-3.1.el7 @docker-ce-stable
docker-ce.x86_64 3:19.03.13-3.el7 @docker-ce-stable
docker-ce-cli.x86_64 1:19.03.13-3.el7 @docker-ce-stable
如果yum被占用,提示Another app is currently holding the yum lock; waiting for it to exit...则可以使用kill -9 pid 这个占用进程,如下
[root@first64 ~]# yum list installed|grep docker
Existing lock /var/run/yum.pid: another copy is running as pid 21308.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: PackageKit
Memory : 31 M RSS (455 MB VSZ)
Started: Tue May 3 14:44:32 2022 - 06:29 ago
State : Sleeping, pid: 21308Exiting on user cancel.
$ kill -9 21308
如果出现BDB2053 Freeing read locks for locker 0x1136: 9370/140057345120064提示
$ yum clean all 即可
# 卸载对应的包
$ yum -y remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64
# 删除docker目录
$ rm -rf /var/lib/docker
$ rm -rf /var/lib/containerd
安装
注意:且Docker 要求操作系统必须为64位,且centos内核版本为3.1及以上
查看系统内核
$ uname -r 3.10.0-1062.el7.x86_6 # 我这里高于3.1 # 系统我使用的是CentOS 7 $ cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora"
保证yum包是最新
# 使用root执行,更新到最新 $ yum update
列出可安装的docker包
# 列出可以按照的docker包 $ yum list docker-ce --showduplicates | sort -r
安装(较慢,不推荐)
因为官方下载较慢,这里,我们走阿里云的仓库下载安装
$ yum install -y yum-utils $ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
指定版本安装
# 这里要指定版本 $ yum -y install docker-ce-18.09.6-3.el7
直接安装最新版
$ yum install docker-ce -y
查看当前版本
$ docker version Client: Docker Engine - Community Version: 20.10.14 API version: 1.41 Go version: go1.16.15 Git commit: a224086 Built: Thu Mar 24 01:49:57 2022 OS/Arch: linux/amd64 Context: default Experimental: true Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? # 此处需要重启Docker
不能连接到
Docker daemon
异常装完后使用docker命令后会提示异常 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 需要重启下docker
重启
$ service docker restart
配置开机启动
$ systemctl enable docker
镜像仓库
Docker中央仓库戳我由于中央仓库网络较慢,我们通常使用国内镜像,所以需要给当前Docker进行配置
国内镜像
# 网易 推荐,目前体验下来是最快的
http://hub-mirror.c.163.com
# daocloud
https://hub.daocloud.io
# 清华大学
https://mirrors.tuna.tsinghua.edu.cn/
# Docker中国区官方镜像
https://registry.docker-cn.com
# ustc
https://docker.mirrors.ustc.edu.cn
# 搜狐
http://mirrors.sohu.com/
# 阿里云 阿里镜像需要登录阿里云控制台获取,每个账号有唯一镜像加速地址
https://cr.console.aliyun.com/
镜像配置
找到
/etc/docker
目录下的daemon.json
文件进行编辑,输入如下内容{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }
如果没有该文件,可自行创建,也可以使用如下命令
tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["http://hub-mirror.c.163.com"] } EOF
重载配置文件,重启
docker
$ systemctl daemon-reload $ systemctl restart docker