Docker配置环境命令
1、docker配置MySQL8.0
docker run -d \
--name mysql8.0 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
-v mysql-data:/var/lib/mysql \
--restart unless-stopped \
mysql:8.0
这个 Docker 命令用于创建并运行一个 MySQL 8.0 数据库容器,具体参数解释如下:
docker run -d
:创建并启动一个容器,-d
表示以守护进程(后台)模式运行。--name mysql8.0
:为容器指定名称为 "mysql8.0",便于后续管理和引用。-p 3306:3306
:将宿主机的 3306 端口映射到容器内部的 3306 端口,使外部可以通过宿主机的 3306 端口访问 MySQL 服务。-e MYSQL_ROOT_PASSWORD=123456
:设置环境变量,指定 MySQL root 用户的密码为 123456。-e TZ=Asia/Shanghai
:设置容器内的时区为上海(中国标准时间),确保数据库时间与本地时间一致。-v mysql-data:/var/lib/mysql
:创建一个名为 "mysql-data" 的数据卷,并将其挂载到容器内的 /var/lib/mysql 目录,用于持久化存储 MySQL 的数据文件,即使容器被删除,数据也不会丢失。--restart unless-stopped
:设置容器的重启策略为 "除非手动停止,否则始终重启",确保容器在宿主机重启或意外崩溃后能自动恢复运行。mysql:8.0
:指定使用 Docker Hub 上的官方 MySQL 8.0 镜像作为容器的基础镜像。
这个命令配置了一个基本的 MySQL 8.0 服务,适合开发和测试环境使用。如需生产环境部署,建议进一步优化密码复杂度、增加配置文件挂载、调整资源限制等。
1.1、我想运行MySQL服务怎么运行
sudo docker exec -it mysql8.0 mysql -u root -p
1.2、使用 docker ps
查看
docker ps
输出
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b5c280775ed8 mysql:8.0 "docker-entrypoint.s…" 13 minutes ago Up 13 minutes 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp mysql8.0
从你提供的输出可以看出,MySQL 容器(mysql8.0
)正在运行,并且端口映射正确(主机的 3306 端口映射到容器的 3306 端口)。这意味着你可以通过以下方式连接到 MySQL 服务器:
方法一:使用容器内的 MySQL 客户端(推荐)
在 root 权限下,直接执行以下命令进入 MySQL 命令行:
docker exec -it mysql8.0 mysql -u root -p
然后输入你设置的 MySQL root 密码(如果是首次启动且未指定密码,可能需要查看容器日志获取临时密码)。
方法二:从主机使用 MySQL 客户端(需先安装)
如果你已经在主机上安装了 MySQL 客户端,可以通过主机的 3306 端口连接:
mysql -h 127.0.0.1 -P 3306 -u root -p
方法三:检查容器日志(如果忘记密码)
如果忘记了 root 密码,可以查看容器日志获取初始密码:
docker logs mysql8.0 2>&1 | grep "GENERATED ROOT PASSWORD"
重置密码(如果忘记)
如果需要重置密码,可以通过以下步骤操作:
-
停止并删除当前容器(数据不会丢失,因为默认挂载了卷):
docker stop mysql8.0 && docker rm mysql8.0
-
使用新密码重新创建容器:
docker run -d \ --name mysql8.0 \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=your_new_password \ -v mysql-data:/var/lib/mysql \ mysql:8.0
2、区分容器和镜像
操作 | 针对对象 | 命令示例 |
---|---|---|
删除容器(停止状态) | 容器 | docker rm <容器名或ID> |
强制删除运行中容器 | 容器 | docker rm -f <容器名或ID> |
删除镜像 | 镜像 | docker rmi <镜像名:标签> |
强制删除镜像(有依赖) | 镜像 | docker rmi -f <镜像名:标签> |
3、挂载命令
用 nginx
为例,首先 push
一个镜像
docker push nginx
然后运行 nginx
容器
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx
--name nginx
中的 nginx
- 含义:这是你为容器指定的名称(
--name
参数用于命名容器)。
最后一个 nginx
- 含义:这是镜像名称,指定基于哪个镜像创建容器。
使用 inspect
查看信息
docker volume inspect html
评论区