Docker入门(一)

一,下载docker desktop

你可以从官网(https://docker.p2hp.com/) 登录之后下载docker desktop或者用下面的地址下载 https://www.32r.com/soft/13849.html
注意:可能需要vpn奥

二,判断是否已安装docker

终端执行docker -v
image
说明已经安装成功

三,下载mysql镜像

打开终端
docker pull mysql
image
代表已经安装好,安装完成之后,输入镜像列表查看命令docker images其实在Docker desktop客户端里面也可以看到
image

四,创建mysql镜像的容器,启动mysql

输入启动容器的命令
docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
看下启动效果,后面的一串数字是容器的完整id
image

输入的这一串命令是什么意思?

  • docker run: 这是启动新容器的命令。
  • -d 或 --detach 是使mysql服务在后台运行,而不是占用当前终端界面。
  • -p 3308:3306: 这是端口映射参数:
  • 创建容器会默认创建一个子网,与宿主机所处的网络互相隔离;mysql服务默认端口3306,如果要通过宿主机所在网络访问容器所处的子网络中的服务,就需要进行端口映射(不熟悉网络的可以看下《如何跟小白解释网络[2]》)。
  • 宿主机的端口在前(左边),容器的端口在后(右边)。
  • -e MYSQL_ROOT_PASSWORD=123456: 设置环境变量 MYSQL_ROOT_PASSWORD=123456;也就是将mysql服务的root用户的密码为123456。
  • mysql: 这是上面刚刚pull的镜像的名称。

通过上面的命令,我们启动了一个mysql镜像的容器,并将主机的3308端口映射到了容器所在子网中ip的3306端口,这样我们就可以通过访问主机的localhost:3308来访问容器中的mysql服务了。

五,访问mysql服务

下面是一串nodejs代码

点击查看代码
// mysql.js
const mysql = require('mysql2');
const connection = mysql.createConnection({
    host: 'localhost',
    port: '3308',
    user: 'root',
    password: '123456',
    database: '',
});
connection.connect();
// 显示全部数据库
connection.query('show databases;', function (err, rows, fields) {
    if (err) {
        console.log('[SELECT ERROR] - ', err.message);
        return;
    }
    console.log('--------------------------SELECT----------------------------');
    console.log(rows);
    console.log('------------------------------------------------------------');
});
在mysql.js根目录下首先要下载`npm install mysql2`,然后在终端执行`node mysql.js` 这时候它应该会报错 ![image](https://img2024.cnblogs.com/blog/3429046/202407/3429046-20240704232045026-2089514563.png) 是因为mysql容器的http认证协议跟我们代码里面的不一样。因此我们要对mysql服务进行一些修改

六,进入mysql容器
首先用docker ps查看容器的id
image
然后执行命令docker exec -it d08aec8d9f18 bash

  • docker exec:用于向运行中的容器发布命令。
  • -it:分配一个终端(伪终端),允许用shell命令进行交互。也就是将容器中的终端界面映射到宿主机终端界面下,从而对容器进行直接的命令行操作。
  • 55cbcc600353:容器ID或容器名称。
  • bash:这是要在容器内执行的命令。这里是启动了容器的Bash shell程序。

执行结果是:
image

闪烁的光标就是bash shell的命令提示符,这里执行的shell命令将会在容器环境中执行。
我们输入mysql登录命令,以root用户身份登录:mysql -uroot -p123456
image
(这里我写错了12346,你们按照自己开始设置的密码来就行了)
成功登录mysql之后在mysql>后面输入:ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY '123456';
注意:可以先用SHOW PLUGINS;查看mysql已安装的插件
image
因为有些人会用mysql_native_password但是并没有这个插件就会报错,例如:
image
这里成功之后,就可以执行exit;退出mysql命令窗口
image
执行ctrl+D可以退出容易命令窗口
image

再回到mysql.js目录下执行node mysql.js,则得到以下结果:
image

总结,至此你的第一次服务部署。

posted @   冰冰biu  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示