docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=root 3306:3306 mysql:8.0.19
时间: 2024-02-12 21:21:15 浏览: 239
非常抱歉,我之前给出的命令有一个小错误。正确的命令应该是:
```shell
docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:8.0.19
```
在这个命令中,我们使用 `-p` 参数来映射容器内的 3306 端口到主机的 3306 端口,并且设置了 MySQL 根密码为 "root"。
请注意,这个命令会创建一个名为 "mysql-container" 的容器,并且会在后台运行 MySQL 8.0.19 镜像。如果您已经运行过这个命令并且使用了相同的容器名称,您可能需要先停止并删除现有的容器,然后再运行这个命令。
希望这次给出的命令能够帮助您成功安装 MySQL 8.0.19。如果还有其他问题,请随时提问!
相关问题
[root@localhost mysql]# docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=root 3306:3306 mysql:8.0.19 Unable to find image '3306:3306' locally docker: Error response from daemon: pull access denied for 3306, repository does not exist or may require 'docker login': denied: requested access to the resource is denied. See 'docker run --help'.
非常抱歉,我之前给出的命令有一些错误。正确的命令应该是:
```shell
docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:8.0.19
```
在这个命令中,我们使用 `-p` 参数来映射容器内的 3306 端口到主机的 3306 端口,并且设置了 MySQL 根密码为 "root"。
请注意,这个命令会创建一个名为 "mysql-container" 的容器,并且会在后台运行 MySQL 8.0.19 镜像。如果您已经运行过这个命令并且使用了相同的容器名称,您可能需要先停止并删除现有的容器,然后再运行这个命令。
希望这次给出的命令能够帮助您成功安装 MySQL 8.0.19。如果还有其他问题,请随时提问!
1、制作基于base镜像rockylinu9,安装源码mysql版本8.0软件。要求启动默认无用户登录,用户可以使用 docker run -d centos-mysql:8.0 -u root -p登录。
可以按照以下步骤来实现:
1. 创建一个 Dockerfile 文件,内容如下:
```
FROM rockylinux/rockylinux:8.4
RUN dnf update -y && \
dnf install -y wget && \
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm && \
rpm -ivh mysql80-community-release-el8-1.noarch.rpm && \
dnf install -y mysql-community-server && \
dnf clean all && \
rm -rf /var/cache/dnf/* && \
rm -rf /tmp/mysql80-community-release-el8-1.noarch.rpm && \
mkdir /docker-entrypoint-initdb.d
COPY ./my.cnf /etc/my.cnf
RUN chown -R mysql:mysql /var/lib/mysql /var/run/mysqld && \
chmod 777 /var/run/mysqld
VOLUME /var/lib/mysql
EXPOSE 3306
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["mysqld"]
```
2. 创建一个 my.cnf 文件,内容如下:
```
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default_authentication_plugin=mysql_native_password
max_allowed_packet=256M
```
3. 创建一个 docker-entrypoint.sh 文件,内容如下:
```
#!/bin/bash
set -eo pipefail
if [ ! -d "/var/lib/mysql/mysql" ]; then
echo "Initializing MySQL..."
/usr/sbin/mysqld --initialize-insecure --user=mysql
echo "MySQL initialized"
fi
echo "Starting MySQL..."
exec /usr/sbin/mysqld --user=mysql --console
```
4. 在 Dockerfile 所在目录下执行以下命令进行构建:
```
docker build -t centos-mysql:8.0 .
```
5. 执行以下命令运行容器:
```
docker run -d -p 3306:3306 -v /path/to/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=<your_password> --name mysql centos-mysql:8.0
```
其中,`/path/to/data` 是你想要将容器中的 MySQL 数据保存到本地的路径,`<your_password>` 是你为 MySQL root 用户设置的密码。运行成功后,你就可以使用以下命令登录到 MySQL:
```
docker run -it --rm --network container:mysql centos-mysql:8.0 mysql -u root -p
```
注意,这里使用了 `--network container:mysql` 参数,让容器使用已有的 MySQL 容器的网络命名空间,从而可以直接访问 MySQL。
阅读全文