docker入门,这一篇就够了
Docker的概述
什么是docker?
Docker是一个开源的应用容器引擎 ,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的linux或windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker的英文翻译是“搬运工”的意思,他搬运的东西就是我们常说的集装箱Container,Container里面装的是任意类型的App,我们的开发人员可以通过Docker将App变成一种标准化的,可移植的,自管理的组件,我们可以在任何主流的操作系统中开发,调试和运行。
诞生于2013年,基于Go 语言实现
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任
何流行的linux 机器上
容器是完全使用沙箱机制,相互隔离
你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而
普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。
总结:docker是一种容器技术,解决软件跨环境迁移的问题。
Docker主要功能
打包:可以把软件以及软件的依赖打包制作成一个镜像(例如把springboot和jdk打包成一个镜像)。
分发:可以把打包好的镜像上传到镜像仓库或者其他的linux系统中。
Docker架构
docker使用客户端-服务器架构。Docker客户端(client)与守护进程(Docker daemon)进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。
仓库(Repository):是docker提供的一个用来保存镜像的仓库
镜像(Image):镜像就是一个可执行的包,用来创建容器,docker中每一个软件就是一个镜像。
容器(Container): 容器是镜像运行时的实体。容器可以被创建,启动,停止,删除,暂停等。
Docker安装
Docker安装
安装yum配置工具 yum install -y yum-utils 设置更新docker镜像源docker安装成功后并没有启动
启动命令 systemctl start docker 关闭命令 systemctl stop docker 设置开机自动启动 systemctl enable dockerDocker卸载
在卸载Docker之前需要先停止服务,否则无法卸载。
停止服务 systemctl stop docker 卸载 yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin 删除文件Docker配置
在etc下创建docker目录 mkdir -p /etc/docker 进入docker目录 cd /etc/docker 创建daemon.json文件 touch daemon.json 修改文件 vim daemon.json重载配置
systemctl daemon-reload 重启 systemctl restart dockerDocker服务命令
Docker镜像命令
镜像列表 docker images 从docker仓库拉取镜像到本地仓库 docker pull 删除本地镜像 docker rmi 镜像名/镜像id 保存镜像到本地,生成tar文件 docker save 从docker保存镜像到linux本地(需要保存) docker save 镜像名 >镜像名.tar 从linux本地加载镜像到docker中 docker load 镜像名 < 镜像名.tar 载入本地镜像 docker loadDocker容器命令
创建一个新的容器并运行 docker run 镜像名 查看容器 docker ps -a 启动容器 docker start 容器名 停止容器 docker stop 容器名 删除容器 docker rm 容器名 查看容器日志 docker logs 容器名Docker部署Mysql
下载镜像
docker pull mysql:8.0安装
进入到容器
docker exec -it 容器名/容器id bash
登录到mysql
mysql -uroot -proot
修改root账号的加密方式
只有修改root账号的加密方式,我们才可以在SQLyog中连接虚拟机中的mysql
ALTER USER root@% IDENTIFIED WITH mysql_native_password BY root;退出
exit注:退出要输入两次
第一次退出mysql
第二次退出容器
数据卷挂载
数据卷是一个虚拟目录,是容器内目录与宿主主机目录之间映射的桥梁。
它将宿主机目录映射到容器内目录,方便我们操作容器内文件,或者方便迁移容器产生的数据。
在执行docker run 命令时,使用-v数据卷:容器内目录可以完成数据卷挂载。
再次下载Mysql
由于我们需要迁移容器内产生的数据,所以我们要对下载的mysql进行数据卷挂载,所以我们先需要删除之前已经下载的Mysql.
停止容器 docker stop mysql 删除容器 docker rm mysql 这里不要忘记修改root账号的加密方式 ALTER USER root@% IDENTIFIED WITH mysql_native_password BY root; 创建mysql数据卷 mkdir -p /opt/mysql/data 安装Docker部署nginx
nginx的概述Nginx是一款是由俄罗斯的程序设计师所开发高性能的 Web服务器(只能运行前端项目,不能运行
java项目)。
其特点是占有内存少,并发能力强。
Nginx专为性能优化而开发,性能是服务器最重要的考量,实现上非常注重效率,能经受高负载的
nginx的部署 拉取镜像 docker pull nginx:1.24 创建数据卷 mkdir -p /opt/nginx/html 安装命令我们只需要将文件部署到宿主机的opt/nginx/html目录下
这里我用我做的项目来举例
我们首先需要在HBuilder X的终端中输入
npm run build
将其放入我们的数据卷中
最后我们打开浏览器,输入我们虚拟机的IP就可以看到我们编写的前端界面
Ongwu博客 版权声明:以上内容未经允许不得转载!授权事宜或对内容有异议或投诉,请联系站长,将尽快回复您,谢谢合作!