首页云计算docker入门,这一篇就够了

docker入门,这一篇就够了

时间2024-07-27 07:40:56发布ongwu分类云计算浏览53

目录

Docker的概述

什么是docker?

Docker主要功能

Docker架构

 Docker安装

Docker安装

安装yum配置工具

 设置更新docker镜像源

 安装

测试docker版本

启动常用命令

启动命令

关闭命令 

设置开机自动启动

Docker卸载

停止服务

 卸载

删除文件

Docker配置

在etc下创建docker目录

进入docker目录

创建daemon.json文件

修改文件

重启

Docker服务命令

Docker镜像命令

镜像列表

从docker仓库拉取镜像到本地仓库

删除本地镜像

保存镜像到本地,生成tar文件

从docker保存镜像到linux本地(需要保存)

从linux本地加载镜像到docker中

载入本地镜像

Docker容器命令

创建一个新的容器并运行

查看容器

启动容器

停止容器

删除容器

查看容器日志

Docker部署Mysql

下载镜像

安装

进入到容器

登录到mysql

修改root账号的加密方式

退出

数据卷挂载

再次下载Mysql

停止容器

删除容器

这里不要忘记修改root账号的加密方式

创建mysql数据卷

安装

Docker部署nginx

nginx的概述

nginx的部署

拉取镜像

创建数据卷

安装命令

访问

Docker的概述

什么是docker?

Docker是一个开源的应用容器引擎 ,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的linuxwindows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口

Docker的英文翻译是“搬运工”的意思,他搬运的东西就是我们常说的集装箱Container,Container里面装的是任意类型的App,我们的开发人员可以通过Docker将App变成一种标准化的,可移植的,自管理组件,我们可以在任何主流的操作系统开发调试和运行。

Docker 是一个应用打包、分发、部署容器

诞生于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镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 安装 yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin 测试docker版本 docker -v 启动常用命令

docker安装成功后并没有启动

启动命令 systemctl start docker 关闭命令  systemctl stop docker 设置开机自动启动 systemctl enable docker

Docker卸载

在卸载Docker之前需要先停止服务,否则无法卸载。

停止服务 systemctl stop docker  卸载 yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin 删除文件
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

Docker配置

在etc下创建docker目录 mkdir -p /etc/docker 进入docker目录 cd /etc/docker 创建daemon.json文件 touch daemon.json 修改文件 vim daemon.json
{
"registry-mirrors": ["https://dockerhub.icu"]
}

 重载配置

systemctl daemon-reload 重启 systemctl restart docker

Docker服务命令

Docker镜像命令

镜像列表 docker images 从docker仓库拉取镜像到本地仓库 docker pull 删除本地镜像 docker rmi 镜像名/镜像id 保存镜像到本地,生成tar文件 docker save 从docker保存镜像到linux本地(需要保存) docker save 镜像名 >镜像名.tar linux本地加载镜像到docker中 docker load 镜像名 < 镜像名.tar 载入本地镜像 docker load

Docker容器命令

删除容器,需要容器停止运行,然后再把容器删除

创建一个新的容器并运行 docker run 镜像名 查看容器 docker ps -a 启动容器 docker start 容器停止容器 docker stop 容器删除容器 docker rm 容器查看容器日志 docker logs 容器

Docker部署Mysql

下载镜像

docker pull mysql:8.0

安装

docker run -d -p 3306:3306 \
--name mysql \
--restart=always \
--privileged=true \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
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 run -d -p 3306:3306 \
--name mysql \
--restart=always \
--privileged=true \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
-v /opt/mysql/data:/var/lib/mysql \
mysql:8.0

Docker部署nginx

nginx的概述

Nginx是一款是由俄罗斯的程序设计师所开发性能 Web服务器(只能运行前端项目,不能运行

java项目)

其特点是占有内存少,并发能力强。

Nginx专为性能优化开发性能服务器最重要的考量,实现上非常注重效率,能经受高负载

考验,据报告支持高达50,000个并发连接数。

nginx的部署 拉取镜像 docker pull nginx:1.24 创建数据 mkdir -p /opt/nginx/html 安装命令
docker run -d -p 80:80 \
--name nginx \
--restart=always \
--privileged=true \
-v /opt/nginx/html:/usr/share/nginx/html \
nginx:1.24
访问 虚拟机的IP:80

我们只需要将文件部署到宿主机的opt/nginx/html目录

这里我用我做的项目来举例

我使用的是HBuilder X来编写前端代码

我们首先需要在HBuilder X的终端中输入

npm run build

 然后在我们的项目中就会出现dist文件

然后我们右键在外部资源管理器打开

将其放入我们的数据卷中

最后我们打开浏览器,输入我们虚拟机的IP就可以看到我们编写的前端界面

Ongwu博客 版权声明:以上内容未经允许不得转载!授权事宜或对内容有异议或投诉,请联系站长,将尽快回复您,谢谢合作!

展开全文READ MORE
数据结构(初阶3.单链表) redis主从复制

游客 回复需填写必要信息