目录
-
Docker简单理解概述
-
Docker安装
-
Docker原理
-
Docker常用命令
- 帮助命令
- 镜像命令
- 容器命令
-
Docker安装nginx
内容
一、Docker的简单理解概述
1.Docker为什么会出现
一款产品(项目)开发完后之后需要上线,开发环境和部署环境是两套环境,两套应用配置
环境配置是十分麻烦的,特别是大型的项目(涉及集群Redis、ES、Hadoop等),而项目部署的时候一般不能带上环境部署,非常麻烦
像springboot项目 可以打成jar包部署,其他的 像redis、MongoDB、JDK等环境都需要重新在服务器部署
现在Docker给以上问题的解决方案,开发打包部署 一套流程环境直接下来
2.大致原理
java — jar(及其他环境)---- 打包带上环境(镜像)—上传仓库(Docker仓库,类似于商店)—服务器下载发布的镜像—直接运行
思想:打包装箱,每个箱子都是隔离的,不同的东西能隔离放置为一个整体。一种容器技术,并且可以充分利用服务器。
3.历史
Docker是使用Go语言开发的,官网地址:www.docker.com
文档地址:www.docs.dorker.com
仓库地址:www.hub.docker.com
4.能做什么
虚拟机技术缺点
- 资源占用多
- 冗余步骤多
- 启动很慢
Docker 和 虚拟机 技术的不同
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统中安装运行软件
- 容器内的应用可以直接运行在宿主机内,容器复用一个内核,每个容器相互隔离,都有一个属于自己的文档系统
DevOps(开发、运维)
- 应用更快速的交付和部署
- 更便捷的升级和扩容
- 更简单的系统运维
二、Docker安装
1.Docker的基本组成
-
镜像:好比是模板,类似字节码,产生容器,可以创建多个容器
-
容器:独立运行一个或者一组应用,可以理解为轻巧的linux系统
-
仓库:存放紧张的地方,分为共有和私有仓库
2.环境准备
-
查看阿里云服务器内核
uname -r
-
查看服务器系统版本
cat /etc/os-release
-
查看Docker文档:https://docs.docker.com/get-started/overview/
-
开始安装
# 1.安装工具包
sudo yum install -y yum-utils
# 2. 设置镜像仓库,国外的较慢,建议使用阿里云的镜像地址
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 最好更新yum 软件包索引
yum makecache fast
# 3. 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io # 注意,我的这一步报错,服务器镜像不是centOS,是阿里云的Alibaba Cloud Linux
# 启动docker
sudo systemctl start docker
我的第三步安装出了问题,参考:Linux报错解决1_阿里云ecs不能使用yum的任何指令、安装docker执行yum makecache fast 报错,最终使用阿里云推荐的方式直接安装的。
- 启动查看版本
- 测试hello-world
- 查看下载的docker-image,刚才的hello-world是否存在
三、阿里云镜像加速
四、Run的流程和Docker的原理
Docker是Client-Server 结构的系统,Docker的守护进程运行在主机,通过Socket从客户端访问
Docker为什么比虚拟机快?
- 有更少的抽象层
- 利用宿主机的内核,vm则是需要guest OS
五、Docker的常用命令
基本分类
- 帮助命令
- 镜像命令
- 容器命令
官网地址:https://docs.docker.com/engine/reference/commandline/cli/
镜像常用命令
docker --help
- 查看镜像
docker images
- 搜索镜像
docker search xxx
- 下载镜像
docker pull xxx
(不写tag默认为最新版),指定版本docker pull xxx:版本
- 删除镜像
docker rmi -f xxx
可以根据id或者名称删除,多个删除空格隔开 - …
容器常用命令
-
新建容器并启动 进入容器
docker run [可选参数] xxx
-
退出容器
exit
(停止并退出)、ctrl + p + q
(退出不停止) -
列出所有运行的容器
docker ps [-a]
-
删除容器
docker rm -f xxx
-
启动和停止容器
docker start xxx、docker restart xxx 、docker stop xxx、docker kill xxx
常用进阶命令
- 后台启动程序
docker run -d xxx
,注意这里后台启动之后若无前台进程会自动退出 - 查看日志
docker logs
- 查看容器中的进程信息
docker top xxx
- 查看容器内部信息元数据
docker inspect xxx
- 进入当前正在运行的容器
docker exec -it xxx bashShell
(-it表示交互模式,bashShell表示命令行,打开一个新的终端)、docker attch xxx
(在当前的终端) - …
六、Docker安装Nginx
基本步骤
- docker search nginx
- docker pull nginx
- docker images
- docker run -d --name nginx01 -p 3344:80 nginx(3344为端口暴露,每个镜像类似一台虚拟机,镜像上的容器nginx的端口是80,但是服务器上需要暴露为3344)
- 进入当前运行的nginx内部
docker exec -it nginx01 /bin/bash
- 查看nginx配置文件位置 whereis nginx
- …