【Docker】3.docker操作容器命令(运行mysql8为例)

本文介绍了在Linux云服务器上启用IPv4配置的方法,包括检查和设置sysctl,重启网络服务和Docker容器。还详细讲解了如何使用dockerrun命令创建、管理MySQL容器,以及处理文件挂载和容器删除的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开启ipv4

如果不开启后面会报错。云服务器不需要设置,部分centos需要设置,可以检测一下是否设置,如果没有则修改配置文件并添加 net.ipv4.ip_forward=1

vim /usr/lib/sysctl.d/80-system.conf

添加标红代码。一旦修改的与网络相关的东西,需要重启相关服务,重启依赖于网络的docker。

systemctl restart network

systemctl restart docker

启动容器

先输入docker --help

run  Run a command in a new container                                                                                        中文意思为:通过run命令创建一个新的容器(container)

如果一个容器有了,我们需要删除,才能执行。或者通过update命令更新相应配置文件。

开始运行mysql容器的命令

docker run: 运行命令,运行一个容器,每个容器都相互隔离,他都是独立运行环境,是一个完整的实例。
-p: 端口号
3306:3306:端口映射,左侧代表容器外的比如虚拟机中的端口号可以更改,右侧容器mysql默认的端口号。
补充:-p 3306:3306:把mysql容器自己的端口映射到虚拟主机,这样我们才能访问,这是端口映射(左侧是本地端口:右侧是docker容器里的端口)
--name mysql:为当前容器起的名字为mysql,名字随意
空格\:换行 
-v 文件1:文件2:文件挂载,我们的左侧还是在我们的外部,把外部的这些内容做一个挂载,把内部挂载到外边(数据库文件,日志,配置文件)
-e MYSQL_ROOT_PASSWORD : environment,环境变量的参数,意思就是我们去设置了当前我们root用户的一个密码,我在这边设定为root。
-d:  是指的我们当前容器mysql是需要在后台去运行。版本号就是tag下的
--character-set-server=utf8mb4 --collation-server=utf8mb4 unicode ci:字符集,创建新的数据库都会加。

查看容器

本阶段只为了学习命令,出现以下错误以供学习。

查看docker中正在运行的容器,发现啥都没有,说明出了问题:

docker ps

查看已经挂掉的容器

 docker ps -a

看下容器的日志

docker logs <container>

中文意思:无法创建'/etc/mysql/conf.d/'这样一个文件目录。跟文件挂载有关。将报错文件删除重新启动。

错误原因:docker run 是创建一个新的容器,因为mysql容器已经存在了,首先移除容器
docker rm myql,重新输入命令则可正确运行。

注意:要在容器外部创建挂载的文件,否则无法完成映射。

docker stop 将容器保留在docker ps -a列表中(如果您希望将其状态保存在新图像中,则可以提交该容器)。

它首先发送SIGTERM,然后在一段宽限期后发送SIGKILL。

docker rm将从docker ps -a列表中删除容器,丢失其“状态”(写入映像文件系统顶部的分层文件系统)。它不能移除正在运行的容器(除非用-f调用,在这种情况下,它直接发送SIGKILL )。

在生命周期方面,您应该先停止容器,然后再移除它。这给了container PID 1 to collect zombie processes一个机会。

 

### 使用 Docker 容器部署和运行 MySQL 8 #### 创建并启动 MySQL 8 容器 为了创建一个带有特定版本的 MySQLDocker 容器,可以利用 `docker run` 命令指定镜像名称以及标签来定义所需的 MySQL 版本。对于 MySQL 8, 可以执行如下命令: ```bash docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8 ``` 这条命令会拉取官方 MySQL 镜像中的 MySQL 8 版本,并以后台守护进程的方式启动它;同时设置了根用户的密码环境变量 `-e MYSQL_ROOT_PASSWORD=my-secret-pw` 和容器的名字 `--name some-mysql`[^1]。 #### 测试连接到 MySQL 数据库 一旦容器成功启动之后,可以通过下面的方法测试是否能够正常访问新建立好的 MySQL: - 执行进入 MySQL 控制台的操作需要用到 `docker exec` 命令加上容器 ID 或者名字,如: ```bash docker exec -it some-mysql bash ``` 这一步骤允许用户进入到正在运行MySQL 服务的那个容器内部的一个 Bash 终端里去操作[^2]。 - 接下来,在打开的新 shell 提示符下输入以下指令登录至 MySQL: ```sql mysql -u root -p ``` 此时应该会被提示输入之前设定过的 ROOT 用户密码。 #### 开启交互模式终端 如果想要更深入地管理和调整 MySQL 设置,则可以在对应的 MySQL 容器中开启一个交互式的 Shell 来做进一步的工作。比如重启 MySQL 服务或者修改配置文件等动作都可以在这个环境下完成。要实现这一点,只需要简单地再次调用 `docker exec` 并附加参数即可: ```bash docker exec -it some-mysql /bin/bash ``` 上述命令将会把当前用户的 session 映射到目标容器内的一个新的 Bash Session 上面,从而获得更高的权限来进行各种维护工作[^3]。 总之,借助于 Docker 技术的帮助,整个过程变得异常简便快捷,无论是开发者还是运维人员都能够迅速搭建起稳定可靠的 MySQL 环境[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值