一、前言
工作中其实就是点点点,但社会所逼,搞的啥都要学,啥都要懂,只能说太卷了。
二、什么是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
1、查看正在运行的容器:docker ps
2、查看所有容器:docker ps-a
-a查看所有容器,
-l查看最新创建的容器,
-n=x,查看最后创建的x个容器
3、启动或者重启容器
docker start 容器名或容器ID
docker restart 容器名或容器ID
4、停止所有的容器,要想删除镜像,必须要先删除容器
docker stop $(docker ps -a -q)
5、停止单个容器,容器名可以通过docker ps获得
docker stop 容器名或容器ID
或者 docker kill 容器名或容器ID
6、删除所有的容器:docker rm $(docker ps -a -q)
7、删除单个容器:docker rm 容器名
8、删除正在运行的容器:docker rm -f 容器名
9、删除全部镜像:docker rmi $(docker images -q)
10、删除单个镜像,imageId可通过dokcer images查看到
docker rmi imageId
五、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
访问Nginx服务,通过浏览器访问 3344 端口的 nginx 服务