1 Docker版本介绍
Docker 从 17.03 版本之后分为:
CE(Community Edition: 社区版) 功能有限,没有官方技术支持服务。
EE(Enterprise Edition: 企业版)功能全面,提供官方技术支持服务。
2 创建Docker存储库
官方安装文档:https://docs.docker.com/engine/installation/linux/centos/
在新主机上首次安装 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.repo3 安装docker软件包
root@localhost ~]# yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
#查看docker版本信息
[root@localhost ~]# docker --version卸载Docker方式,删除安装包:
yum remove docker-ce删除镜像、容器、配置文件等内容:
rm -rf /var/lib/docker4 配置镜像加速器
默认情况下镜像从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 ~]# dockerDocker命令根据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]
本地镜像管理: docker [build|images|rmi|tag|save|import|load]
容器资源管理: docker [volume|network]
系统日志信息: docker [events|history|logs]
6 镜像常用管理命令
docker image 获取镜像管理命令
列出本地镜像: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 run
常用选项:
-it :为容器分配一个输入终端
--name="名称" :为容器指定一个名称
/bin/bash :在容器内执行bash命令
exit :退出容器
-d :后台运行容器,并返回容器ID
-P :随机端口映射,容器内部端口随机映射到主机的端口
-p :指定端口映射,格式为:主机(宿主)端口:容器端口
--dns 8.8.8.8 :指定容器使用的DNS服务器,默认和宿主一致
-h "名称" :指定容器的hostname
-e username="ritchie" :设置环境变量
-m :设置容器使用内存最大值
--net="bridge" :指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型
--link=[] :添加链接到另一个容器
--expose=[]: 开放一个端口或一组端口
--volume , -v :绑定一个数据卷
创建容器:docker run 参数
[root@localhost ~]# docker run -it --name=c1 centos:7 /bin/bash-it :为容器分配一个输入终端
--name="名称" :为容器指定一个名称
/bin/bash :在容器内执行bash命令
查看容器信息:
[root@localhost ~]# docker ps 通过-it创建的容器退出后自动关闭 [root@localhost ~]# docker ps -a 查看所有容器,包括未运行的
创建容器并放入后台运行
[root@localhost ~]# docker run -id --name=centos2 centos:7-d :后台运行容器,并返回容器ID,放入后台运行的容器退出后不会自动关闭
查看容器元数据信息
[root@localhost ~]# docker inspect centos2进入容器:docker exec -it 容器ID/容器名
[root@localhost ~]# docker exec -it centos2 /bin/bash停止容器:docker stop 容器名/容器ID
[root@localhost ~]# docker stop centos2启动被停止的容器:docker start 容器名/容器ID
[root@localhost ~]# docker start centos1启动被停止的所有容器:ps -aq 获取所有容器ID
[root@localhost ~]# docker start `docker ps -aq`删除容器: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.22)创建容器并实现端口映射(默认容器无法被外网访问)
[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:端口
评论区