- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章docker之创建MariaDB镜像的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、基于commit命令方式创建 。
docker的安装 。
1
2
3
|
[root@test01 ~]
# yum install docker
[root@test01 ~]
# systemctl enable docker
[root@test01 ~]
# systemctl start docker
|
下载本地镜像 。
1
2
3
4
|
[root@test01 ~]
# docker pull centos:7.4.1708
[root@test01 ~]
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io
/centos
7.4.1708 3afd47092a0e 3 months ago 196.6 MB
|
创建交互型容器 。
1
|
[root@test01 ~]
# docker run -it --name="mysql_server" centos /bin/bash
|
4.安装mariadb服务 。
1
|
[root@e8126d0481d2 /]
# yum -y install mariadb-server net-tools
|
初始化mariadb 。
1
|
[root@e8126d0481d2 /]
# mysql_install_db --user=mysql
|
后台启动mariadb服务 。
1
2
3
4
5
6
7
8
9
10
|
[root@e8126d0481d2 /]
# mysqld_safe &
[1] 114
[root@e8126d0481d2 /]
#
180210 13:45:27 mysqld_safe Logging to
'/var/log/mariadb/mariadb.log'
.
180210 13:45:27 mysqld_safe Starting mysqld daemon with databases from
/var/lib/mysql
[root@e8126d0481d2 /]
# netstat -tunpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID
/Program
name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
|
创建mariadb登录密码,并可以指定ip登录 。
1
2
3
4
5
6
7
8
9
10
|
[root@e8126d0481d2 /]
# mysqladmin -u root password 'kingsoft'
[root@e8126d0481d2 /]
# mysql -u root -p
Enter password:
MariaDB [(none)]> show databases;
MariaDB [(none)]> use mysql;
MariaDB [mysql]>
select
Host from user where user=
'root'
;
MariaDB [mysql]> grant all privileges on *.* to
'root'
@
'%'
identified by
'kingsoft'
with grant option;
MariaDB [mysql]> update user
set
password=password(
'kingsoft'
) where user=
'root'
and host=
'e8126d0481d2'
;
MariaDB [mysql]> flush privileges;
MariaDB [mysql]>
exit
|
容器登录验证 。
1
2
3
|
[root@e8126d0481d2 /]
# mysql -u root -h 172.17.0.2 -p
Enter password:
MariaDB [(none)]>
exit
|
创建容器启动脚本 。
1
2
3
4
|
[root@e8126d0481d2 ~]
# cat run.sh
#!/bin/sh
mysqld_safe
|
创建镜像 。
1
2
3
4
|
[root@test01 ~]
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e8126d0481d2 centos
"/bin/bash"
11 minutes ago Exited (0) 8 seconds ago mysql_server
[root@test01 ~]
# docker commit mysql_server mariadb:1.0
|
创建容器 。
1
2
3
4
|
[root@test01 ~]
# docker run -d -p 13306:3306 mariadb:1.0 /root/run.sh
[root@test01 ~]
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eed3e88a1261 mariadb:1.0
"mysqld_safe"
4 seconds ago Up 3 seconds 0.0.0.0:13306->3306
/tcp
romantic_hamilton
|
主机登录验证 。
1
2
3
|
[root@test01 ~]
# yum -y install mariadb
[root@test01 ~]
# mysql -u root --port=13306 -p
MariaDB [(none)]>
|
2、基于Dockerfile方式创建 。
设置创建目录和文件 。
1
2
3
|
[root@test01 ~]
# mkdir mariadb_dockerfile && cd mariadb_dockerfile
[root@test01 mariadb_dockerfile]
# touch db_init.sh
[root@test01 mariadb_dockerfile]
# touch run.sh
|
编辑Dockerfile等文件 。
Dockerfile 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
[root@test01 mariadb_dockerfile]
# cat Dockerfile
#使用的基础镜像
FROM centos:7.4.1708
#添加作者信息
MAINTAINER liuxin 842887233@qq.com
#安装mariadb数据库
RUN yum -y
install
mariadb-server
#设置环境变量,便于管理
ENV MARIADB_USER root
ENV MARIADB_PASS kingsoft
#让容器支持中文
ENV LC_ALL en_US.UTF-8
#初始化数据库
ADD db_init.sh
/root/db_init
.sh
RUN
chmod
775
/root/db_init
.sh
RUN
/root/db_init
.sh
#导出端口
EXPOSE 3306
#添加启动文件
ADD run.sh
/root/run
.sh
RUN
chmod
775
/root/run
.sh
#设置默认启动命令
CMD [
"/root/run.sh"
]
|
db_init.sh 。
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@test01 mariadb_dockerfile]
# cat db_init.sh
#!/bin/bash
mysql_install_db --user=mysql
sleep
3
mysqld_safe &
sleep
3
#mysqladmin -u "$MARIADB_USER" password "$MARIADB_PASS"
mysql -e
"use mysql; grant all privileges on *.* to '$MARIADB_USER'@'%' identified by '$MARIADB_PASS' with grant option;"
h=$(
hostname
)
mysql -e
"use mysql; update user set password=password('$MARIADB_PASS') where user='$MARIADB_USER' and host='$h';"
mysql -e
"flush privileges;"
|
run.sh 。
1
2
3
|
[root@test01 mariadb_dockerfile]
# cat run.sh
#!/bin/bash
mysqld_safe
|
创建镜像 。
1
|
[root@test01 mariadb_dockerfile]
# docker build -t liuxin/centos-mariadb:v1 ./
|
创建容器 。
1
2
3
4
|
[root@test01 mariadb_dockerfile]
# docker run -d -p 13306:3306 liuxin/centos-mariadb:v1 /root/run.sh
[root@test01 mariadb_dockerfile]
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7743527ac603 liuxin
/centos-mariadb
:v1
"/root/run.sh"
5 seconds ago Up 3 seconds 0.0.0.0:13306->3306
/tcp
nostalgic_mirzakhani
|
登录验证 。
1
2
3
4
5
6
7
8
9
10
11
|
[root@test01 mariadb_dockerfile]
# mysql -uroot -h 127.0.0.1 --port=13306 -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection
id
is 1
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type
'help;'
or
'\h'
for
help. Type
'\c'
to
clear
the current input statement.
MariaDB [(none)]>
exit
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:http://www.jianshu.com/p/e64726f90a49 。
最后此篇关于docker之创建MariaDB镜像的方法的文章就讲到这里了,如果你想了解更多关于docker之创建MariaDB镜像的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在使用以下dockerfile: FROM ubuntu:14.04 MAINTAINER xxx xxx # SSH RUN apt-get update && apt-get install
我运行了docker-compose build celery,(经过数小时的尝试,我的连接不良)成功了。 app Dockerfile的前80%是相同的,但不会重复使用缓存。从我可以浏览的内容来看,
我可以使用以下命令成功创建 Docker 注册表 v2 服务:docker service create 然后我使用 docker Push 将一些图像推送到该服务。 当我通过 curl localh
我正在尝试使用 gitlab 构建 CI,我从 docker 的 docker 镜像开始,我的前端存储库没有任何问题,但现在使用相同的 gitlab-ci 配置文件,我有此守护程序错误。 这是构建的输
用例: 我们在 Jenkins 中有几个“发布作业”build 和 push 应用程序的 Docker 镜像到 docker registry,更新各种文件中的项目版本,最后将发布标签推送到相应的 G
当我尝试构建我的 docker 文件时,docker 返回以下错误: [+] Building 0.0s (1/2)
docker-in-docker 的作者在此博客中建议不要将此图像用于 CI 目的: jpetazzo/Using Docker-in-Docker for your CI or testing en
我创建了一个 Dockerfile 来在 Docker 中运行 Docker: FROM ubuntu:16.04 RUN apt-get update && \ apt-get in
我尝试为 Docker 镜像定位一个特定标签。我怎样才能在命令行上做到这一点?我想避免下载所有图像,然后删除不需要的图像。 在 Ubuntu 官方版本中,https://registry.hub.do
我正在尝试在docker中运行docker。唯一的目的是实验性的,我绝不尝试实现任何功能,我只想检查docker从另一个docker运行时的性能。 我通过Mac上的boot2docker启动docke
docker-compose.yml version: "3" services: daggr: image: "docker.pvt.com/test/daggr:stable"
我有一个非常具体的开发环境用例。在一些代码中,我启动了一个容器来抓取页面并检索在容器中运行的服务(Gitlab)的 token 。 现在,我希望 Dockerize 运行它的代码。具体来说,类似: o
之前已经问过这个问题,但我不确定当时是否可以使用docker-compose文件完成docker堆栈部署。 由于最新版本支持使用compose将服务部署到堆栈,因此,我无法理解dab文件的值。 我检查
我在一次采访中被问到这个问题,但无法回答。也没有找到任何相关信息。 最佳答案 正如 Docker 文档中所述,Docker 注册表是: [...] a hosted service containin
有没有一种方法可以将具有给定扩展名的所有文件复制到Docker中的主机?就像是 docker cp container_name:path/to/file/in/docker/*.png path/o
我的日志驱动程序设置为journald。使用日志记录驱动程序时,daemon.json文件中的日志级别配置会影响日志吗?使用docker logs 时仅会影响容器日志? 例如,docker和journ
我最近开始使用Docker + Celery。我还共享了full sample codes for this example on github,以下是其中的一些代码段,以帮助解释我的观点。 就上下文
运行docker build .命令后,尝试提交构建的镜像,但收到以下错误 Step 12 : CMD activator run ---> Using cache ---> efc82ff1ca
我们有docker-compose.yml,其中包含Kafka,zookeeper和schema registry的配置 当我们启动docker compose时,出现以下错误 docker-comp
我是Docker的新手。是否可以在Docker Hub外部建立Docker基本镜像存储库?假设将它们存储在您的云中,而不是拥有DH帐户?谢谢。 最佳答案 您可以根据需要托管自己的注册表。可以在Depl
我是一名优秀的程序员,十分优秀!