docker入门,这一篇就够了

目录

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

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就可以看到我们编写的前端界面

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值