Docker入门(一)
一,下载docker desktop
你可以从官网(https://docker.p2hp.com/) 登录之后下载docker desktop或者用下面的地址下载 https://www.32r.com/soft/13849.html
注意:可能需要vpn奥
二,判断是否已安装docker
终端执行docker -v
说明已经安装成功
三,下载mysql镜像
打开终端
docker pull mysql
代表已经安装好,安装完成之后,输入镜像列表查看命令docker images
其实在Docker desktop客户端里面也可以看到
四,创建mysql镜像的容器,启动mysql
输入启动容器的命令
docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
看下启动效果,后面的一串数字是容器的完整id
输入的这一串命令是什么意思?
- 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容器
首先用docker ps
查看容器的id
然后执行命令docker exec -it d08aec8d9f18 bash
- docker exec:用于向运行中的容器发布命令。
- -it:分配一个终端(伪终端),允许用shell命令进行交互。也就是将容器中的终端界面映射到宿主机终端界面下,从而对容器进行直接的命令行操作。
- 55cbcc600353:容器ID或容器名称。
- bash:这是要在容器内执行的命令。这里是启动了容器的Bash shell程序。
执行结果是:
闪烁的光标就是bash shell的命令提示符,这里执行的shell命令将会在容器环境中执行。
我们输入mysql登录命令,以root用户身份登录:mysql -uroot -p123456
(这里我写错了12346,你们按照自己开始设置的密码来就行了)
成功登录mysql之后在mysql>后面输入:ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY '123456';
注意:可以先用SHOW PLUGINS;
查看mysql已安装的插件
因为有些人会用mysql_native_password
但是并没有这个插件就会报错,例如:
这里成功之后,就可以执行exit;
退出mysql命令窗口
执行ctrl+D可以退出容易命令窗口
再回到mysql.js目录下执行node mysql.js
,则得到以下结果:
总结,至此你的第一次服务部署。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现