学前准备
👿 Linux 基础
👿 SpringBoot 基础
文章目录
- @[toc]
- 1. Docker 概述
- 1.1 docker 为什么出现
- 1.2 Docker 容器和虚拟机的不同
- 1.3 Docker 能做什么
- 2. Docker 安装
- 2.1 Docker 的组成
- 3. Docker 命令
- 3-1 安装Nginx
- 3-2 安装mysql
- 3-3 安装java ,在打包jar镜像的时候会自动下载
- 3-4 建立文件夹,上传jar包,和配置文件
- 3-5 建立文件夹,vue打包的dist包,配置文件
- 4. Docker 镜像
- 5. 容器数据
- 6. DockerFile
- 7. Docker 网络原理
- 8. Docker Compose
- 9. Docker Swarm (简化版的k8s)
- 10. CI\CD Jenkins
文章目录
- @[toc]
- 1. Docker 概述
- 1.1 docker 为什么出现
- 1.2 Docker 容器和虚拟机的不同
- 1.3 Docker 能做什么
- 2. Docker 安装
- 2.1 Docker 的组成
- 3. Docker 命令
- 3-1 安装Nginx
- 3-2 安装mysql
- 3-3 安装java ,在打包jar镜像的时候会自动下载
- 3-4 建立文件夹,上传jar包,和配置文件
- 3-5 建立文件夹,vue打包的dist包,配置文件
- 4. Docker 镜像
- 5. 容器数据
- 6. DockerFile
- 7. Docker 网络原理
- 8. Docker Compose
- 9. Docker Swarm (简化版的k8s)
- 10. CI\CD Jenkins
1. Docker 概述
1.1 docker 为什么出现
环境影响程序的运行 , 当环境改变的时候配置新的环境费时费力.
- docker 可以简化项目的打包 , 部署 , 上线 . 带上环境(环境镜像)
- Docker通过隔离机制,可以将服务器利用到极致.
- Docker是基于Go语言开发的
1.2 Docker 容器和虚拟机的不同
- 传统虚拟机,需要虚拟硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件;
- 容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟硬件,更加轻便;
- 每个容器间相互隔离,每个容器内部都有一个属于自己的文件系统,互不影响。
1.3 Docker 能做什么
DevOps(开发、运维)
- 更快捷的交付和部署
传统:一堆帮助文档,安装程序
Docker: 打包镜像发布测试,一键运行。
- 更便捷的升级和扩缩容
- 更简单的系统运维
- 更高效的计算机资源利用
2. Docker 安装
-
Docker官网 : https://www.docker.com/
-
Docker文档 : https://docs.docker.com/
-
Docker仓库地址: https://hub.docker.com/
-
Docker安装命令:
yum install docker
- 启动docker服务:
service docker start
- 停止docker服务:
service docker stop
- 重启docker服务:
service docker restart
- 启动docker服务:
-
查看docker版本: docker version
2.1 Docker 的组成
-
镜像(Image)
镜像就像一个模板,可以通过模板来创建容器服务
-
容器(container)
这个容器就像一个最简单的Linux系统
-
仓库(repository)
仓库就是 存放镜像的地方,分为共有仓库和私有仓库.
3. Docker 命令
- 通过docker部署一个前后端项目
3-1 安装Nginx
拉去Nginx文件
docker pull nginx
查看下载好的镜像文件
docker images
创建并运行Nginx
docker run -d --name nginx01 -p 8080:80 nginx
docker run
:启动一个容器
-d
:表示后台允许
--name
:起一个别名
-p 8080:80
:表示将本机的8080端口映射到nginx镜像的80端口
查看Nginx是否部署成功
curl localhost:8080
查看所有容器
docker ps -a
移出创建的容器
docker rm ee3ba2b76699 [ee3ba2b76699为容器id,也可以是名称(nginx01)]
运行中的容器需要先停止才能移出,停止运行中容器
docker stop nginx01
创建本地管理目录
启动容器的时候挂载在本地
docker run --name nginx -p 8080:80 -v /myInstall/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /myInstall/docker/nginx/www/:/usr/shart/nginx/html/ -v /myInstall/docker/nginx/logs/:/var/log/nginx/ -v /myInstall/docker/nginx/conf/:/etc/nginx/conf.d --privileged=true -d nginx
3-2 安装mysql
下拉mysql镜像文件,默认下载的是
docker mysql
启动MySQL容器
docker run --name mysql8 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
开启3306端口开放
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙,
查看3306端口是否开放
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --query-port=3306/tcp
- 然后可以通过远程的数据库软件连接
3-3 安装java ,在打包jar镜像的时候会自动下载
3-4 建立文件夹,上传jar包,和配置文件
3-5 建立文件夹,vue打包的dist包,配置文件
构建镜像,在目录下运行
docker build -t vue .
运行
docker run -d -p 8081:80 --name httpvue vue
- 然后就可以远程访问了