我的目标是拥有一个具有运行MySQL服务的docker容器.所以每当我启动容器时,数据库都处于初始状态并且MySQL正在运行.

几乎一切都很好但是当我启动容器时MySQL服务没有运行.每次在控制台中我都必须像这样启动它:service mysql start.

以下是我构建和运行容器的步骤:

$docker build -t executer:mysql .

Sending build context to Docker daemon 15.87 kB

Sending build context to Docker daemon

Step 0 : FROM debian:wheezy

#

# ... Many steps without error

#

Step 17 : RUN mysql_install_db --user=mysql --basedir=/usr/ --ldata=/var/lib/mysql/

---> Using cache

---> 1c71bf4524f0

Step 18 : RUN service mysql start

---> Running in b4643765b79b

......

MySQL Community Server 5.6.24 is started.

---> ac26b749a3c0

Removing intermediate container b4643765b79b

Successfully built ac26b749a3c0

$docker run --rm -it executer:mysql /bin/bash

root@1d9208c19af0:/# mysql

ERROR 2002 (HY000): Cant connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

root@1d9208c19af0:/# service mysql start

No directory, logging in with HOME=/

......

[info] MySQL Community Server 5.6.24 is started.

root@1d9208c19af0:/# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.6.24 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

这是Dockerfile的内容:

FROM debian:wheezy

# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added

RUN groupadd -r mysql && useradd -r -g mysql mysql

# FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:

# File::Basename

# File::Copy

# Sys::Hostname

# Data::Dumper

RUN apt-get update && apt-get install -y perl --no-install-recommends && rm -rf /var/lib/apt/lists/*

# gpg: key 5072E1F5: public key "MySQL Release Engineering " imported

RUN apt-key adv --keyserver pool.sks-keyservers.net --recv-keys A4A9406876FCBD3C456770C88C718D3B5072E1F5

ENV MYSQL_MAJOR 5.6

ENV MYSQL_VERSION 5.6.24

RUN echo "deb http://repo.mysql.com/apt/debian/ wheezy mysql-${MYSQL_MAJOR}" > /etc/apt/sources.list.d/mysql.list

# the "/var/lib/mysql" stuff here is because the mysql-server postinst doesn't have an explicit way to disable the mysql_install_db codepath besides having a database already "configured" (ie, stuff in /var/lib/mysql/mysql)

# also, we set debconf keys to make APT a little quieter

RUN { \

echo mysql-community-server mysql-community-server/data-dir select ''; \

echo mysql-community-server mysql-community-server/root-pass password ''; \

echo mysql-community-server mysql-community-server/re-root-pass password ''; \

echo mysql-community-server mysql-community-server/remove-test-db select false; \

} | debconf-set-selections \

&& apt-get update && apt-get install -y mysql-server="${MYSQL_VERSION}"* && rm -rf /var/lib/apt/lists/* \

&& rm -rf /var/lib/mysql && mkdir -p /var/lib/mysql

RUN apt-get update && apt-get install -y procps

# comment out a few problematic configuration values

RUN sed -Ei 's/^(bind-address|log)/#&/' /etc/mysql/my.cnf

# VOLUME /var/lib/mysql

# Install database

ADD ./database.sql /var/db/database.sql

# Set Standard settings

ENV user student

ENV password secret

ENV url file:/var/db/database.sql

ENV right READ

# Install starting script

ADD ./start-database.sh /usr/local/bin/start-database.sh

RUN chmod +x /usr/local/bin/start-database.sh

#EXPOSE 3306

RUN mysql_install_db --user=mysql --basedir=/usr/ --ldata=/var/lib/mysql/

RUN service mysql start

运行我的容器后,如何更改我的Dockerfile以运行MySQL服务?

mysql容器操作_如何使用运行MySQL构建Docker容器?相关推荐

  1. docker 容器监控_以简便的方式监控Docker容器中的ADF应用程序

    docker 容器监控 在这篇简短的文章中,我将展示一种简单的方法来确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序. 我将使用标准工具JConsole,它是计算机 ...

  2. 服务器运维浏览器,本机浏览器如何访问docker容器的内容_网站服务器运行维护,浏览器,docker...

    docker无法下载镜像怎么办_网站服务器运行维护 docker无法下载镜像的解决方法是:1.运行命令[systemctl stop firewalld]关闭防火墙:2.运行命令[date -s xx ...

  3. docker电子书_果然!这10个Docker容器坑多数人都中招过

    毋庸置疑,容器已经成为企业IT基础设施中必不可少的部分,它具有许多的优点,比如: 第一:容器是不可变的--操作系统,库版本,配置,文件夹和应用程序都包装在容器内.你保证在质量检查中测试过的同一镜像将以 ...

  4. 2021年R1快开门式压力容器操作考试题库及R1快开门式压力容器操作考试APP

    题库来源:安全生产模拟考试一点通公众号小程序 2021年R1快开门式压力容器操作考试题库为正在备考R1快开门式压力容器操作操作证的学员准备的理论考试专题,每个月更新的R1快开门式压力容器操作考试APP ...

  5. 2021年R1快开门式压力容器操作最新解析及R1快开门式压力容器操作证考试

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:R1快开门式压力容器操作最新解析是安全生产模拟考试一点通总题库中生成的一套R1快开门式压力容器操作证考试,安全生产模拟考试一点通上 ...

  6. 2021年R1快开门式压力容器操作考试技巧及R1快开门式压力容器操作证考试

    题库来源:安全生产模拟考试一点通公众号小程序 R1快开门式压力容器操作考试技巧是安全生产模拟考试一点通生成的,R1快开门式压力容器操作证模拟考试题库是根据R1快开门式压力容器操作最新版教材汇编出R1快 ...

  7. 2022年R1快开门式压力容器操作考试资料及R1快开门式压力容器操作考试总结

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:R1快开门式压力容器操作考试资料是安全生产模拟考试一点通总题库中生成的一套R1快开门式压力容器操作考试总结,安全生产模拟考试一点通 ...

  8. 2021年R1快开门式压力容器操作最新解析及R1快开门式压力容器操作模拟考试题

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:R1快开门式压力容器操作最新解析是安全生产模拟考试一点通总题库中生成的一套R1快开门式压力容器操作模拟考试题,安全生产模拟考试一点 ...

  9. 2021年R1快开门式压力容器操作最新解析及R1快开门式压力容器操作操作证考试

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:R1快开门式压力容器操作最新解析是安全生产模拟考试一点通生成的,R1快开门式压力容器操作证模拟考试题库是根据R1快开门式压力容器操 ...

最新文章

  1. 10年程序员总结的20几条经验教训
  2. 1.13 总结-深度学习第五课《序列模型》-Stanford吴恩达教授
  3. 为啥我从后台查到的值在页面显示的是undefined_短说开发日报:2.7版本后台财务管理(11.19周四)...
  4. linux用usermod修改密码,Linux笔记(usermod命令,用户密码管理,mkpasswd)
  5. java实验报告实验环境_Java实验报告一:Java开发环境的熟悉
  6. 比较好用的mysql可视化工具-----pycharm连接mysql图文教程
  7. Unity播放服务器端视频 发布到Android移动端
  8. 灰度发布--Spring Cloud Gray
  9. 局域网查共享计算机的ip地址吗,如何查看电脑的内网IP地址?
  10. python是跨平台语言吗_python可以跨平台么
  11. 【路径规划】第一周: 路径规划 开源代码汇总(ROS) 版本
  12. 怎么网络同步计算机的本地时间,VBA实现本地计算机时间与网服务器时间的同步...
  13. 图像处理与计算机视觉-论文阅读笔记
  14. 【计算机网络】(二)网络技术与应用
  15. js控制form提交
  16. 数据流图-2(分层数据流图)
  17. 5、每日搞笑段子API接口,免费好用
  18. 毕设总结(久等了~)
  19. 芯片测试术语 ,片内测试(BIST),ATE测试
  20. CPU漏洞修复工具下载,专门针对“Meltdown”(融化)和“Spectre”(幽灵)两组CPU漏洞,360安全卫士国内首发免疫工具

热门文章

  1. 图片竖轮播html,JS实现纵向轮播图(初级版)
  2. python列表索引超出范围 等于啥_python中的“列表索引超出范围”
  3. 中切片工具怎么使用_PS软件中钢笔工具的使用,附视频
  4. C语言程序练习-L1-002 打印沙漏 (20分)
  5. 每日程序C语言44-反向输出一个链表(递归)
  6. linux目录所属用户和组,管理用户所属的用户组《 Linux 文件与目录权限 》
  7. python语言用什么来表明每行代码的层次关系_2021年尔雅通识课《切削原理与刀具》课后习题答案...
  8. php调用root权限,PHP执行root权限程序
  9. python基础--GIL全局解释器锁、Event事件、信号量、死锁、递归锁
  10. Django13-ModelForm中的is_valid及局部钩子、全局钩子源码解析