1、Docker介绍
Docker 是一个开源的容器运行时软件(容器运行时是负责运行容器的软件),基于 Go 语言编写,并遵从 Apache2.0 协议开源。
Docker可以让开发者打包自己的应用以及依赖到一个轻量的容器中,然后发布到任何流行的Linux系统上(docker主要理念:一次封装随处运行)。
Docker的思想来源于集装箱,让容器与容器之间相互隔离,与系统相互隔离提高程序之间的安全,更重要的是容器性能开销极低。
Docker官网:www.docker.com

2、Docker组成部分
镜像(images):用来创建容器的模板文件,一个镜像可以创建多个容器(容器动态)
容器(container): 程序的载体,程序运行在容器中,每个容器相互隔离,互不影响,但可以相互通讯
仓库(Repository):集中存放镜像的场所,仓库分为公开仓库(public)和私有仓库(private)两种
最大的公开仓库为docker hub:https://hub.docker.com
国内的公开仓库包括:阿里、网易、中科大等
3、容器应用场景
容器非常适合持续集成和持续交付(CI / CD)工作流程,请考虑以下示例方案:
开发人员在本地编写代码,并使用 Docker 封装成镜像,镜像推送到测试环境中,并执行自动或手动测试。
当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。
测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。
4、Docker资源汇总
Docker 官方主页: https://www.docker.com
Docker 官方博客: https://blog.docker.com/
Docker 官方文档: https://docs.docker.com/
Docker Cloud(云平台文档): https://cloud.docker.com
Docker Hub: https://hub.docker.com
Docker 常见问题: https://docs.docker.com/engine/faq/
5、Docker版本介绍
Docker 从 1.17.03 版本之后分为:
CE(Community Edition: 社区版)免费,功能有限,没有官方技术支持服务。
EE(Enterprise Edition: 企业版)收费,功能全面,提供官方技术支持服务。
6、环境规划
7、安装docker软件包
官方安装文档:https://docs.docker.com/engine/installation/linux/centos/
配置阿里的Base源(下载docker时,所需的依赖在Base源里)
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo通过阿里的docker仓库安装方式
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum -y install docker-ce-20.10.9-3.el7卸载Docker方式:删除安装包, 删除镜像、容器、配置文件内容
yum remove docker-ce
rm -rf /var/lib/docker8、配置镜像加速器
默认情况下镜像从docker hub下载,由于docker hub服务器在国外,由于网络原因镜像下载速度较慢,一般会配置镜像加速器进行下载
国内镜像加速器有阿里云、网易云、腾讯云、中科大等,本实验配置阿里云镜像加速器,速度较快
阿里云镜像加速器地址:https://www.aliyun.com/
9、Docker命令介绍
查看docker可用命令
docker10、镜像常用管理命令
以下是一个Docker镜像常用的管理命令
docker查看本地镜像方式
docker images 命令用于列出本地所有的镜,命令格式如下:
docker images
#字段解释
REPOSITORY 镜像名称
TAG 镜像的标签
IMAGE ID 镜像的ID
CREATED 镜像更新时间
SIZE 镜像大小docker搜索镜像方式
docker search 命令用于在Docker Hub中搜索镜像,命令格式如下:
docker search nginx
#字段解释
NAME 镜像仓库名称
DESCRIPTION 镜像仓库描述
STARS 评分(星星数)
OFFICIAL 是否为官方镜像,[OK] 表示官方镜像
AUTOMATED 是否为自动构建的镜像,[OK]表示是,自动化构建是Docker Hub的一项功能,当代码仓库中的源代码发生变更时,Docker Hub会自动触发构建过程,从而创建一个新的镜像docker下载镜像方式
docker pull 命令用于在Docker Hub中下载镜像,下载时如果不指定镜像版本则是仓库中的latest 版本,命令格式如下:
docker pull nginx:1.22.011、容器常用管理命令
创建容器:docker run 选项...
常用选项:
-id :创建容器并指定容器在后台运行
--name="名称" :为容器指定一个名称
-p :指定端口映射,格式为:宿主机端口:容器端口
--dns 8.8.8.8 :指定容器使用的DNS服务器,默认和宿主一致
-it: 进入容器
-h "名称" :指定容器的hostname
-e username="ritchie" :设置环境变量
-m :设置容器使用内存最大值
--net="bridge" :指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型
--link=[] :添加链接到另一个容器
--expose=[]: 开放一个端口或一组端口
--volume , -v :绑定一个数据卷
-u: 可以指定用户进入容器(用户存在)
创建容器:docker run 参数
docker run -id --name=nginx nginx:1.22.0查看容器信息:
docker ps 通过-it创建的容器退出后自动关闭
docker ps -a 查看所有容器,包括未运行的查看容器元数据信息
docker inspect nginx进入容器:docker exec -it 容器ID/容器名
docker exec -it nginx /bin/bash停止容器:docker stop 容器名/容器ID
docker stop nginx启动被停止的容器:docker start 容器名/容器ID
docker start nginx启动被停止的所有容器:ps -aq 获取所有容器ID
docker start `docker ps -aq`删除容器:docker rm 容器名/容器ID
常用选项: -f 强制删除(无需停止容器)
docker rm nginx删除所有容器:ps -aq 获取所有容器ID
docker rm `docker ps -aq`练习:通过Docker部署Nginx的web应用并实现浏览器访问:
创建容器并实现端口映射(默认容器无法被外网访问)
docker run -d --name=ngx_v1 --restart=always -p 81:80 nginx:1.22.0-p :指定端口映射,格式为:宿主机端口:容器端口
--restart=always #设置容器随机自启
浏览器访问:http://server_ip:port
评论区