1.Docker版本介绍
Docker从17.03版本之后分为:
CE(Community Edition: 社区版) 功能有限,没有官方技术支持服务。
EE(Enterprise Edition: 企业版)功能全面,提供官方技术支持服务。

2.创建Docker存储库 官方安装文档:https://docs.docker.com/engine/installation/linux/centos/

环境规划
截屏20221011 14.17.28.png

在新主机上首次安装Docker Engine-Community之前,需要设置Docker仓库。
之后,方便您可以从仓库安装和更新Docker:
[root@localhost ~]# yum install -y yum-utils

使用以下命令来设置稳定的仓库(阿里仓库):
[root@localhost ~]# yum-config-manager --add-repo \
> http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装docker软件包
[root@localhost ~]# yum install -y docker-ce docker-ce-cli
containerd.io docker-compose-plugin

#查看docker版本信息
[root@localhost ~]# docker --version

卸载Docker方式,删除安装包:
[root@localhost ~]# yum remove docker-ce

删除镜像、容器、配置文件等内容:
[root@localhost ~]# rm -rf /var/lib/docker

4.配置镜像加速器
默认情况下镜像从docker hub下载,由于docker hub服务器在国外,由于网络原因镜像下载速度较慢,一般会配置镜像加速器进行下载,国内镜像加速器有阿里云、网易云、腾讯云、中科大等,本实验配置阿里云镜像加速器,速度较快。
阿里云的加速器:https://help.aliyun.com/document_detail/60750.html
网易加速器:http://hub-mirror.c.163.com
官方中国加速器:https://registry.docker-cn.com
ustc(中科大) 的镜像:https://docker.mirrors.ustc.edu.cn
Daocloud(云平台):https://www.daocloud.io/mirror#accelerator-doc (注册后使用)

5.Docker命令介绍
查看docker可用命令:
[root@localhost ~]# docker

Docker命令根据Docker官方案例分为以下几种:
Docker环境信息: docker [info|version] 
容器生命周期管理: docker [create|exec|run|start|stop|restart|kill|rm|pause|unpause] 容器操作命令: docker [ps|inspect|top|attach|wait|export|port|rename|stat]
容器rootfs命令: docker [commit|cp|diff]
镜像仓库命令: docker [login|pull|push|search]
本地镜像管理: [build|images|rmi|tag|save|import|load] 
容器资源管理: docker [volume|network] 
系统日志信息: docker [events|history|logs]
6.镜像常用管理命令docker image获取镜像管理命令
命令                 作用
docker images       列出本地镜像 
docker search       镜像名 搜索镜像 
docker pull         镜像名:版本 拉取镜像 
docker rmi          镜像名:版本 删除镜像

列出本地镜像:docker images
常用选项:
-a :列出本地所有的镜像 
-q :只显示镜像ID
[root@localhost ~]# docker images
输出详情介绍:
REPOSITORY   镜像仓库源
TAG          镜像的标签
IMAGE ID     镜像的ID
CREATED      镜像更新时间
SIZE         镜像大小

搜索镜像:docker search
常用选项:
--no-trunc :显示完整的镜像描述
[root@localhost ~]# docker search centos

输出详情介绍:
NAME             镜像仓库源的名称
DESCRIPTION      镜像的描述
STARS            点赞数量,表示喜欢的意思
OFFICIAL         是否docker官方发布
AUTOMATED        自动构建(表示个人发布)

下载镜像:docker pull
[root@localhost ~]# docker pull centos:7
提示:下载镜像如果不指定镜像版本则是最新版本,如需指定版本可从docker hub查看对应版本信息在进行下载

查看镜像:docker images
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       7         8652b9f0cb4c   8 months ago   204MB

删除镜像:docker rmi
[root@localhost ~]# docker rmi centos
提示:删除镜像可以根据镜像名称或者ID删除

删除所有镜像:如需删除所有镜像可以配合docker images -q获取所有
镜像ID在进行删除
[root@localhost ~]# docker rmi `docker images -q`
7.容器常用管理命令
命令                               作用
docker ps         		  查看正在运行容器
docker ps -a        		  查看所有容器
docker run 参数			  创建容器
docker exec 容器ID/容器名 	  进入容器
docker stop 容器名/容器ID           停止容器
docker rm 容器名/容器ID             删除容器
docker start 容器名/容器ID          启动被停止的容器
docker restart 容器名/容器ID        重启容器
docker kill 容器名/容器ID           强制停止正在运行的容器(一般不用,除非卡了)
docker inspect 容器名称             查看容器元数据信息
--restart=always                   启动容器时设置容器随机自启
docker update --restart=always 容器名/容器ID   容器启动后设置容器随机自启
docker logs 容器名/容器ID           查看容器日志信息

创建容器:docker run
常用选项:
-id :指定容器在后台运行,并返回容器ID 
--name="名称" :为容器指定一个名称 /bin/bash :在容器内执行bash命令
exit :退出容器
-P :随机端口映射,容器内部端口随机映射到主机的端口
-p :指定端口映射,格式为:主机(宿主)端口:容器端口
--dns 8.8.8.8 :指定容器使用的DNS服务器,默认和宿主一致 
-h "名称" :指定容器的hostname
-e username="ritchie" :设置环境变量
-m :设置容器使用内存最大值
--net="bridge" :指定容器的网络连接类型,支持bridge/host/none/container: 四种类型
--link=[] :添加链接到另一个容器
--expose=[]: 开放一个端口或一组端口
--volume , -v :绑定一个数据卷

1.创建容器:docker run参数
[root@localhost ~]# docker run -it --name=c1 centos:7 /bin/bash

-it :为容器分配一个输入终端 
--name="名称" :为容器指定一个名称 
/bin/bash :在容器内执行bash命令

2.查看容器信息:
[root@localhost ~]# docker ps 通过-it创建的容器退出后自动关闭
[root@localhost ~]# docker ps -a 查看所有容器,包括未运行的

3.创建容器并放入后台运行
[root@localhost ~]# docker run -id --name=centos2 centos:7
-d:后台运行容器,并返回容器ID,放入后台运行的容器退出后不会自动关闭

4.查看容器元数据信息
[root@localhost ~]# docker inspect centos2

5.进入容器:docker exec -it 容器ID/容器名
[root@localhost ~]# docker exec -it centos2 /bin/bash

6.停止容器:docker stop 容器名/容器ID
[root@localhost ~]# docker  stop  centos2

7.启动被停止的容器:docker start 容器名/容器ID
[root@localhost ~]# docker start centos1

8.启动被停止的所有容器:ps -aq 获取所有容器ID
[root@localhost ~]# docker start `docker ps -aq`

9.删除容器:docker rm 容器名/容器ID 
常用选项: -f 强制删除(无需停止容器)
[root@localhost ~]# docker  rm  centos2

10.删除所有容器:ps -aq 获取所有容器ID
[root@localhost ~]# docker rm `docker ps -aq`

练习:通过Docker部署Nginx的web应用并实现浏览器访问: 
1)下载nginx镜像
[root@localhost ~]# docker pull nginx:1.20.2

2)创建容器并实现端口映射(默认容器无法被外网访问)
[root@localhost ~]# docker run -d --name=ngx_v1 --restart=always -p 80:80  nginx:1.20.2

-P:随机端口映射,容器内部端口随机映射到主机的端口 
-p:指定端口映射,格式为:宿主机端口:容器端口 
--restart=always #容器退出后,自动启动容器(一直)

3)拷贝项目到Nginx的网页目录
docker cp 用于容器与主机之间的数据拷贝
格式1:docker cp 容器名:目录/文件 宿主机目录 #将容器中文件或目录拷贝到宿主机
格式2:docker cp 宿主机目录/文件 容器名:目录  #将宿主机文件/目录拷贝到容器中

#将转盘抽奖项目拷贝到容器中
[root@localhost ~]# docker cp /root/turntable_lottery-master/* ngx_v1:/usr/share/nginx/html

#进入容器验证
[root@localhost ~]# docker exec -it ngx_v1 /bin/bash 
[root@b35e35bf1ca9:/]# cd /usr/share/nginx/html/

4)浏览器访问:http://宿主机IP:端口
```![截屏20221011 14.16.56.png](/upload/2022/10/%E6%88%AA%E5%B1%8F2022-10-11%2014.16.56-972e9ece6ed5420a8bf2d92c8b2d7756.png)
上一篇 下一篇