环境准备
- window 10 +
- wsl2 环境
- Docker Desktop
- Ubuntu
在 dockerhub 查找一个lnmp的包,下载地址如下:
拉取镜像
docker pull 2233466866/lnmp
第一次安装执行以下命令:
docker run -dit \
-p 80:80 \
-p 443:443 \
-p 3306:3306 \
-p 9000:9000 \
-v /mnt/e/Code/www:/www \
-v /mnt/e/Code/mysql:/data/mysql \
--privileged=true \
--name=lnmp \
2233466866/lnmp:newest
上面 /mnt/e/Code/www
指 window 的文件路径,映射到docker 的目录位置为 /www
,/mnt/e/Code/mysql
为mysql的数据文件路径,docker映射目录为 /data/mysql
,--name=lnmp
指 容器名称为 ‘lnmp’。
进入容器:
docker exec -it lnmp /bin/bash
这样docker 就已经安装使用。
以下需要用到的基本命令
docker常用命令 | |
---|---|
docker start lnmp【容器名】 | 启动容器 |
docker stop lnmp【容器名】 | 关掉容器 |
docker exec -it lnmp /bin/bash | 进入容器 |
docker exec -it lnmp /bin/sh | 进入容器 |
常用问题解答:
1、安装 2233466866/lnmp:newest ,mysql 启动失败如何解决
解决如下:
1、清除 mysql 下的所有文件
2、/var/log/mysqld.log 赋予权限:chmod 777 mysqld.log
2、显示 mysql 的临时密码
初始密码(Default password)
cat /var/log/mysqld.log|grep 'A temporary password'
或
password=`cat /var/log/mysqld.log|grep 'A temporary password'`;password=${password:91};echo $password
3、修改 mysql 密码:
alter user 'root'@'localhost' identified by 'koala123';
4、创建远程用户:
create user koala identified by 'koala123';
grant all privileges on *.* to 'koala'@'%' identified by 'koala123' with grant option;
flush privileges;
5、Docker容器添加或者修改端口映射
参考文档链接:www.wuleba.com/555.html
在 Windows 10 系统中文件在这个路径:\wsl$\docker-desktop-data\version-pack-data\community\docker\containers[hash_of_the_container]
hash_of_the_container 可以通过 docker inspect 容器名字 来查看,一般都是 Docker 容器ID 开头。
docker inspect 79ae4d783f8a | grep Id
这些文件不是挂在本地目录,而是挂在 Network 目录下。需要打开我的电脑,然后在地址栏输入:\\wsl$\docker-desktop-data\version-pack-data\community\docker\containers\
就可以打开了。
关闭你们的 Container 容器,然后修改 hostconfig.json 配置文件:
然后直接修改这个目录下的 hostconfig.json 就可以修改和添加指定容器的端口映射了,修改 hostconfig.json 配置文件,记得备份哦,文件内容是 json 格式,格式化后:
"PortBindings": {
"3306/tcp": [
{
"HostIp": "",
"HostPort": "3306"
}
],
"443/tcp": [
{
"HostIp": "",
"HostPort": "443"
}
],
"80/tcp": [
{
"HostIp": "",
"HostPort": "80"
}
],
"9000/tcp": [
{
"HostIp": "",
"HostPort": "9000"
}
],
"9501/tcp": [ //新增
{
"HostIp": "",
"HostPort": "9501"
}
]
},
修改 config.v2.son 配置文件:
"Ports": {
"3306/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "3306"
}
],
"443/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "443"
}
],
"80/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "80"
}
],
"9000/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "9000"
}
],
"9501/tcp": [ // 新增
{
"HostIp": "0.0.0.0",
"HostPort": "9501"
}
]
},
修改完毕之后,要重启整个Docker服务,不是直接去Docker Desktop重启 Container 哦(如果你不小心启动了 Container ,上面的配置会被还原,请你再改一次,然后这次就不要忘记 Restart Docker 服务了),在系统右下角使用 Docker Desktop
中restart 服务 即可正常使用~~