Centos7下Docker自己动手制作image镜像.docx
- 文档编号:28543818
- 上传时间:2023-07-18
- 格式:DOCX
- 页数:10
- 大小:105.33KB
Centos7下Docker自己动手制作image镜像.docx
《Centos7下Docker自己动手制作image镜像.docx》由会员分享,可在线阅读,更多相关《Centos7下Docker自己动手制作image镜像.docx(10页珍藏版)》请在冰豆网上搜索。
Centos7下Docker自己动手制作image镜像
Docker自己动手制作image镜像
一、文件结构
1、Dockerfile目录结构
2、文件说明
Dockerfile文件:
mysql8-centos7.dockerfile
Readme.txt:
Docker制作image进行说明
etc/f:
MySQL配置文件
etc/start.sh:
MySQL镜像创建容器是MySQL初始化及启动脚本
soft/mysql-cluster-8.0.21-linux-glibc2.12-x86_64.tar.gz:
mysql-cluster-8.0.21压缩包
soft/mysql:
mysql-cluster-8.0.21压缩包解压的mysql目录
二、配置文件
1、MySQL配置文件(f)
[mysqld]
port=3306
pid-file =/var/run/mysqld/mysqld.pid
socket =/tmp/mysql.sock
datadir =/var/lib/mysql
secure-file-priv=
default-time-zone='+8:
00'
#Disablingsymbolic-linksisrecommendedtopreventassortedsecurityrisks
symbolic-links=0
max_connections=10000
log-error=/var/log/mysql/error.log
slow_query_log=ON
slow_query_log_file=/var/log/mysql/slow-query.log
long_query_time=3
log-queries-not-using-indexes=/var/log/mysql/not-use-index.log
lower_case_table_names=1
sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'
max_allowed_packet=2048M
#
##Customconfigshouldgohere
!
includedir/etc/mysql/conf.d/
2、MySQL镜像创建容器时MySQL初始化及启动脚本(start.sh)
#!
/bin/bash
#MySQL数据初始化
MYSQL_INIT(){
rm-rf/var/lib/mysql/*
/usr/local/mysql/bin/mysqld--initialize--user=mysql--basedir=/usr/local/mysql--datadir=/var/lib/mysql--lower_case_table_names=1--console
chown-Rmysql:
mysql/var/lib/mysql
}
#MySQL启动脚本
MYSQL_START(){
while:
do
Num=`psaux|grepmysqld_safe|wc-l`
["$Num"-lt2]&&/usr/local/mysql/bin/mysqld_safe--defaults-file=/etc/mysql/f--user=mysql
sleep5
done
}
File_Count=`ls/var/lib/mysql|wc-l`
["$File_Count"-eq0]&&MYSQL_INIT
MYSQL_START
3、Dockerfile主要文件
#ThisMySQL8.0Dockerfile
#Version1.0
#Baseimages基础镜像
FROMcentos:
centos7
#MAINTAINER维护者信息
MAINTAINERluo<46623753@>
#ENV安装必要软件
RUN\
#yumupdate-y-q&&\
yum-y-qinstalllibaio-y&&\
yum-y-qinstallnumactl-y&&\
yumcleanall
#ENV设置环境变量
ENVMYSQL_SOFTDIR/usr/local
ENVMYSQL_BASEDIR/usr/local/mysql
ENVMYSQL_CONFDIR/etc/mysql
ENVMYSQL_DATADIR/var/lib/mysql
ENVMYSQL_RUNDIR/var/run/mysqld
ENVMYSQL_LOGDIR/var/log/mysql
ENVPATH/usr/local/mysql/bin:
$PATH
RUN\
echo''>>/etc/profile&&\
echo'PATH=$PATH:
$MYSQL_BASEDIR/bin:
$MYSQL_BASEDIR/lib'>>/etc/profile
#VOLUME用于指定持久化目录
VOLUME["${MYSQL_DATADIR}","${MYSQL_CONFDIR}","${MYSQL_CONFDIR}/conf.d","${MYSQL_LOGDIR}"]
#COPY本地文件复制到指定目录
COPYsoft/mysql${MYSQL_BASEDIR}
#RUN查看复制后目录情况
RUN\
ls${MYSQL_BASEDIR}
#RUN执行创建mysql用户命令及相关目录和文件
RUN\
groupaddmysql&&\
useradd-gmysqlmysql&&\
mkdir-p${MYSQL_BASEDIR}&&\
mkdir-p${MYSQL_DATADIR}&&\
mkdir-p${MYSQL_CONFDIR}/conf.d&&\
mkdir-p${MYSQL_LOGDIR}/log&&\
mkdir-p${MYSQL_RUNDIR}&&\
touch${MYSQL_RUNDIR}/mysqld.pid&&\
touch/tmp/mysql.sock&&\
touch${MYSQL_LOGDIR}/error.log&&\
touch${MYSQL_LOGDIR}/slow-query.log&&\
touch${MYSQL_LOGDIR}/not-use-index.log&&\
chmod-R777/tmp/mysql.sock&&\
chmod-R777${MYSQL_RUNDIR}&&\
chmod-R777${MYSQL_LOGDIR}&&\
chmod-R644${MYSQL_CONFDIR}
#COPY本地文件复制到指定目录
COPYetc/start.sh/usr/local/bin/start.sh
COPYetc/f${MYSQL_CONFDIR}
#RUN修改目录的所有者
RUN\
chown-Rmysql:
mysql${MYSQL_BASEDIR}&&\
chown-Rmysql:
mysql${MYSQL_DATADIR}&&\
chown-Rmysql:
mysql${MYSQL_CONFDIR}&&\
chown-Rmysql:
mysql${MYSQL_LOGDIR}&&\
chown-Rmysql:
mysql${MYSQL_RUNDIR}&&\
chown-Rmysql:
mysql/tmp/mysql.sock
#WORKDIR=cd进入MySQL安装目录
WORKDIR${MYSQL_BASEDIR}
#USER指定运行时的用户名或UID
#USERmysql
#EXPOSE映射端口
EXPOSE1330633060
#CMD运行MySQL镜像创建容器时MySQL初始化及启动脚本
CMD["/bin/sh","/usr/local/bin/start.sh"]
三、MySQL8.0下载
1、下载MySQL-Cluster-8.0
下载地址:
2、解压mysql-cluster-8.0.21
aitalk@luo:
~$tar-zxvfmysql-cluster-8.0.21-linux-glibc2.12-x86_64.tar.gz
aitalk@luo:
~$mvmysql-cluster-8.0.21-linux-glibc2.12-x86_64mysql
四、制作镜像及安装
1、编译生成MySQL镜像
aitalk@luo:
~$sudodockerbuild-f./mysql8-centos7.dockerfile.-taitalk/mysql:
8.0.21
注:
Successfullybuiltxxxx标识编译完成。
2、查看镜像
aitalk@luo:
~$dockerimages
3、安装镜像
aitalk@luo:
~$dockerrun-itd-p3316:
3306\
--namemy-mysql-3316\
-v/data/soa/3316/conf/f:
/etc/mysql/f\
-v/data/soa/3316/conf/conf.d:
/etc/mysql/conf.d\
-v/data/soa/3316/data:
/var/lib/mysql\
-v/data/soa/3316/logs:
/var/log/mysql\
--privileged=true-eMYSQL_ROOT_PASSWORD=123456\
-daitalk/mysql:
8.0.21
4、查看安装容器
aitalk@luo:
~$dockerps-a
五、修改MySQL密码及测试
1、从error日志取得临时初始密码
aitalk@luo:
~$morelog/error.log
2、修改密码及严重方式
aitalk@luo:
~$ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'bj123456';
aitalk@luo:
~$flushprivileges;
3、创建远程连接账号
aitalk@luo:
~$createuser'root'@'%'identifiedby'bj123456';
aitalk@luo:
~$ALTERUSER'root'@'%'IDENTIFIEDWITHmysql_native_passwordBY'bj123456';
aitalk@luo:
~$grantallprivilegeson*.*to'root'@'%'withgrantoption;
aitalk@luo:
~$flushprivileges;
六、Docker相关指令
1、基本命令
dockerversion:
查看docker版本
dockerinfo:
查看docker详细信息
docker--help:
查看docker命令
2、docker的启动、停止、重启
servicedockerrestart:
重启docker服务
servicedockerstop:
停止docker服务
servicedockerstart:
启动docker服务
3、查看docker镜像
dockerimages:
查看docker镜像
dockerpulltomcat:
从DockerHub上下载tomcat镜像
dockercommit-m"提交的描述信息"-a"作者"容器ID要创建的目标镜像名称:
[标签名]:
复制容器使之成为一个新的镜像。
dockerps-a:
查看docker创建的所有容器
dockerrmiIMAGEID:
从Docker中删除指定ID的镜像
4、启动、停止、重启某个docker容器
dockerstartCONTAINERID/CONTAINERNAME:
启动指定CONTAINERID(CONTAINERNAME)的容器
dockerstopCONTAINERID/CONTAINERNAME:
停止指定CONTAINERID(CONTAINERNAME)的容器
dockerrestartCONTAINERID/CONTAINERNAME:
重启指定CONTAINERID(CONTAINERNAME)的容器
dockerlogs-fCONTAINERID/CONTAINERNAME:
查看指定容器的日志记录
dockerrmCONTAINERID/CONTAINERNAME:
删除指定容器的日志记录
dockerrm$(dockerps-a-q):
删除所有容器
5、启动、停止、重启某个docker容器
dockerrun[OPTIONS]IMAGE根据镜像新建并启动容器。
IMAGE是镜像ID或镜像名称
OPTIONS说明:
--name=“容器新名字”:
为容器指定一个名称
-d:
后台运行容器,并返回容器ID,也即启动守护式容器
-i:
以交互模式运行容器,通常与-t同时使用
-t:
为容器重新分配一个伪输入终端,通常与-i同时使用
-P:
随机端口映射
-p:
指定端口映射,有以下四种格式:
ip:
hostPort:
containerPort
ip:
:
containerPort
hostPort:
containerPort
containerPort
6、其他指令示例
dockerps列出当前所有正在运行的容器
dockerps-a列出所有的容器
dockerps-l列出最近创建的容器
dockerps-n3列出最近创建的3个容器
dockerps-q只显示容器ID
dockerps--no-trunc显示当前所有正在运行的容器完整信息
exit退出并停止容器
Ctrl+p+q只退出容器,不停止容器
dockerstart容器ID或容器名称启动容器
dockerrestart容器ID或容器名称重新启动容器
dockerstop容器ID或容器名称停止容器
dockerkill容器ID或容器名称强制停止容器
dockerrm容器ID或容器名称删除容器
dockerrm-f容器ID或容器名称强制删除容器
dockerrm-f$(dockerps-a-q)删除多个容器
dockerlogs-f-t--since--tail容器ID或容器名称查看容器日志
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Centos7 Docker 自己动手 制作 image
![提示](https://static.bdocx.com/images/bang_tan.gif)