关于Docker的那些事
一、前言
工作中其实就是点点点,但社会所逼,搞的啥都要学,啥都要懂,只能说太卷了。
二、什么是Docker
Docker 是一个开源的应用容器引擎,容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低,Docker的思想来自于集装箱。
下图是Docker的架构图,架构图箭头的意思大概是:
- 在 Docker Client 敲 Docker 命令调用 Docker API 来操作 Host 上的 Docker 服务
- Docker 服务可以从仓库拉镜像到本机,也可以用本机镜像创建一个容器并运行
Docker 包括三个基本概念:
- 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
- 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
- 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
三、Centos 7.x 下安装 Docker
配置 Docker Repository
在主机上首次安装 Docker Engine之前,需要设置 Docker Repository,之后可以从 Repository 安装和更新 Docker
# step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息,国内 Repository 更加稳定 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新 sudo yum makecache fast
安装最新版本的 Docker Engine 和 Container
sudo yum install docker-ce docker-ce-cli containerd.io
- 安装成功后不代表 Docker 已成功,且 Docker 组虽已创建,但没有用户添加到该组
启动 Docker
sudo systemctl start docker
验证 Docker Engine 是否已正确安装
通过运行 hello-world 映像来验证
四、Docker常用命令
参考https://www.runoob.com/docker/docker-command-manual.html
五、Docker实战之安装Nginx
搜索 Nginx 镜像,第一个就是官方镜像
docker search nginx
下载镜像到本地
docker pull nginx
查看镜像是否下载成功,使用以下命令来查看是否已安装了 nginx
docker images
运行镜像,即运行容器
- -p:端口映射,容器内部 80 映射到宿主机 3344 端口
- --name:自定义容器名
docker run -d --name nginx01 -p 3344:80 nginx
查看镜像运行状态,如上图
docker ps
补充:停止容器 docker stop nginx01 重新运行容器 docker start nginx01