如果您想了解Centos7使用Docker部署mssql2017的知识,那么本篇文章将是您的不二之选。同时我们将深入剖析CentOS7使用docker安装mysql、CentOS7使用Docker搭建
如果您想了解Centos7 使用Docker 部署mssql 2017的知识,那么本篇文章将是您的不二之选。同时我们将深入剖析CentOS 7 使用docker安装mysql、CentOS 7 使用Docker搭建Mysql、centos7 64bit 安装 docker 最新版教程(Centos7 下安装 Docker Engine)、Centos7 Docker离线部署Mysql5.7的各个方面,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- Centos7 使用Docker 部署mssql 2017
- CentOS 7 使用docker安装mysql
- CentOS 7 使用Docker搭建Mysql
- centos7 64bit 安装 docker 最新版教程(Centos7 下安装 Docker Engine)
- Centos7 Docker离线部署Mysql5.7
Centos7 使用Docker 部署mssql 2017
https://www.cnblogs.com/pzscit/archive/2020/02/23/12348618.html
mssql是.NET的标配,一般使用.NET的人基本都用mssql。
以前mssql只能支持windows平台,从微软打出 拥抱开源 的口号开始,mssql的2017 版本,开始支持linux系统。
一开始,我是直接在centos中安装mssql的,总的来说,比windows快很多。但是现在都使用容器技术,docker也确实给人带来很多方便。
所以,我也弃用原有的直接在系统安装的方式,在linux中安装docker。并使用docker安装mssql。
全程非常简单,简化了很多工作。只需要一条命令即可完成。你也可以参照官方文档:
https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-ver15&pivots=cs1-bash
或者到docker hub中找到对应的帮助:
https://hub.docker.com/_/microsoft-mssql-server
执行这个命令:
docker run -e ''ACCEPT_EULA=Y'' -e ''SA_PASSWORD=yourStrong(!)Password'' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest
即可正常安装。
重点来了,数据文件存放在哪?
装完之后,我们的数据文件是存放在容器内部的,要物理备份,比较麻烦,而且如果不小心,把容器删除了,数据文件也就没有了。
所以,要在命令里,加多一个选项:
docker run -e ''ACCEPT_EULA=Y'' -e ''SA_PASSWORD=yourStrong(!)Password'' -v /home/db_data:/var/opt/mssql -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest
就是这个:-v /home/db_data:/var/opt/mssql,在容器内加一个数据卷,其中/var/opt/mssql是容器内数据库存放文件的目录,我们把这个目录映射到物理路径:/home/db_data 。
这样,你使用外部链接,创建数据库。就可以在物理路径:/home/db_data 下看到对应的文件。而且如果 mssql容器出现故障,要删掉重新部署的话,物理路径下的数据库文件,还是会在那里的。
技术之路,学无止境!
CentOS 7 使用docker安装mysql
1.检查内核版本,必须是3.10及以上
uname -r
2.安装docker
yum install docker -y
3.启动docker
systemctl start docker
4.设置为开机自启
systemctl enable docker
5.搜索docker仓库
docker search mysql
6下载mysql,这里我安装5.7
docker pull mysql:5.7
这里可能会出现报错
Trying to pull repository docker.io/library/mysql ...
5.7: Pulling from docker.io/library/mysql
Get https://registry-1.docker.io/v2/library/mysql/manifests/sha256:b16d058ac835a0a087d4e42a5c200abc2a4936ec73ff7a427b28257f66bb5c04: net/http: TLS handshake timeout
更换为国内的仓库就好了,点击这个链接https://www.daocloud.io/mirror 这里面有每个平台设置国内仓库的方法
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。更多详情请访问文档。
更换好以后重新下载mysql
docker pull mysql:5.7
等待下载完成后,我们就可以在本地镜像列表里查到刚下的mysql
docker images |grep mysql
最新官方MySQL(5.7.19)的docker镜像在创建时映射的配置文件目录有所不同,在此记录并分享给大家:
官方原文:
The MySQL startup configuration is specified in the file /etc/mysql/my.cnf, and that file in turn includes any files found in the /etc/mysql/conf.d directory that end with .cnf. Settings in files in this directory will augment and/or override settings in /etc/mysql/my.cnf. If you want to use a customized MySQL configuration, you can create your alternative configuration file in a directory on the host machine and then mount that directory location as /etc/mysql/conf.d inside the mysql container.
大概意思是说:
MySQL(5.7.19)的默认配置文件是 /etc/mysql/my.cnf 文件。如果想要自定义配置,建议向 /etc/mysql/conf.d 目录中创建 .cnf 文件。新建的文件可以任意起名,只要保证后缀名是 cnf 即可。新建的文件中的配置项可以覆盖 /etc/mysql/my.cnf 中的配置项。
具体操作:
首先需要创建将要映射到容器中的目录以及.cnf文件,然后再创建容器
# pwd
/opt
# mkdir -p docker_v/mysql/conf
# cd docker_v/mysql/conf
# touch my.cnf
# docker run -p 3306:3306 --name mysql -v /opt/docker_v/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
命令说明:-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v /opt/docker_v/mysql/conf:/etc/mysql/conf.d:将主机/opt/docker_v/mysql/conf目录挂载到容器的/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
-d: 后台运行容器,并返回容器ID
查看容器运行情况
docker ps
CentOS 7 使用Docker搭建Mysql
1. 前提是Docker已经安装好了
没有安装的可以看这篇文章-->CentOS 7安装Docker
2.拉取mysql镜像
docker pull mysql
docker images
可以看到我们拉取的镜像


[root@bogon ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mynginx latest 1964089d63e6 11 days ago 108 MB
docker.io/mysql 5.7 98455b9624a9 2 weeks ago 372 MB
docker.io/jenkins/jenkins lts 806f56c84444 8 weeks ago 703 MB
docker.io/tomcat latest 168588387c68 2 months ago 463 MB
docker.io/redis latest 0f55cf3661e9 2 months ago 95 MB
docker.io/nginx latest f09fe80eb0e7 2 months ago 109 MB
docker.io/mysql latest 81f094a7e4cc 2 months ago 477 MB
docker.io/zookeeper latest 06b178591ab3 2 months ago 150 MB
docker.io/php 5.6-fpm 3458979c7744 2 months ago 344 MB
宿主机创建几个文件夹用于容器文件挂载
mkdir -p /home/service/mysql/data
mkdir -p /home/service/mysql/conf/my.cnf
然后运行命令启动mysql
docker run -p 3306:3306 --name mysql \
-v /home/service/mysql/data:/var/lib/mysql \
-v /home/service/mysql/conf/my.cnf:/etc/my.cnf \
-e MYSQL_ROOT_PASSWORD=123456\
-e TZ=Asia/Shanghai \
-d mysql
docker run -p 3306:3306 --name mysql -v /home/service/mysql/logs:/logs -v /home/service/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql
命令讲解> -p 3306:3306:将容器的3306端口映射到主机的3306端口
> -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
> -e TZ=Asia/Shanghai 修改容器默认时区为上海
> -v =/mysqltest/config/my.cnf:/etc/my.cnf:映射配置文件
> -v =/mysqltest/data:/var/lib/mysql:映射数据目录
注意:不同mysql版本可能配置文件目录和路径不一样,mysql5.7的容器路径为 /etc/mysql/mysql.conf.d/mysqld.cnf。
进入容器
docker exec -it mysql bash
登陆mysql
mysql -uroot -p
创建mysql用户
CREATE USER ''admin''@''%'' IDENTIFIED BY ''123456'';
GRANT ALL ON *.* TO ''admin''@''%'';
flush privileges;
然后就可以使用admin用户登陆了,因为mysql8与mysql5.7授权有一些不一样,mysql必须先创建用户才能授权,不然会出错。
centos7 64bit 安装 docker 最新版教程(Centos7 下安装 Docker Engine)
一。先决条件
首选需要一个 64 位操作系统和 3.10 或者更版本的内核。
查看当前内核版本:
?
1 2 |
$ uname -r 3.10.0-229.el7.x86_64 |
二.yum 安装 Docker Engine
安装 Docker Engine 有两种方式,我们先选择 yum 安装,并且 Docker 官方提供了 yum 源。
1. 使用普通用户 sudo 或者 root 登录到你的服务器,更新 yum,确保你的软件都是最新的
?
1 |
$ yum update |
2. 添加 Docker 的 yum 源
?
1 2 3 4 5 67 8 |
$ sudo tee /etc/yum.repos.d/docker.repo <<-''EOF'' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF |
3. 安装 Docker 软件包
?
1 |
$ yum install docker-engine |
4. 设置 Docker 服务开机自启
?
1 |
$ systemctl enable docker.service |
5. 启动 Docker 服务
?
1 |
$ systemctl start docker |
6. 验证 Docker 是否安装成功
?
1 |
$ docker run --rm hello-world |
至此:docker 最新版已经安装完成,下面我们进行生产环境镜像的创建,使用 dockerfile
dockerfile (白话其实就是一个脚本,把一个纯镜像按照所需应用或者环境每个操作集成到一个文件执行安装的过程,类似于 linux 的 shell.)
走世界自由行环境需求(tomcat+jdk)
#以下是我们采用纯净 centos,之后安装所需环境依赖的应用(tomcat+jdk)
FROM centos
#以下是我们声明的维护人或者叫做作者
MAINTAINER locutus "zoushijie"
# OS 环境配置
RUN yum install -y wget
# 安装 JDK
RUN mkdir /opt/jdk
RUN wget -P /opt/jdk/ http://zsj-linux.oss-cn-hangzhou.aliyuncs.com/yunwei/jdk-8u162-linux-x64.tar.gz
RUN tar -zxvf /opt/jdk/jdk-8u162-linux-x64.tar.gz -C /opt/jdk && rm -rf /opt/jdk/jdk-8u162-linux-x64.tar.gz
# 安装 tomcat
RUN mkdir /opt/tomcat
RUN wget -P /opt/tomcat http://45.77.240.64/apache-tomcat-8.0.47.tar.gz
RUN tar -zxvf /opt/tomcat/apache-tomcat-8.0.47.tar.gz -C /opt/tomcat && rm -rf /opt/tomcat/apache-tomcat-8.0.47.tar.gz
#设置环境变量
ENV JAVA_HOME /opt/jdk/jdk1.8.0_162
ENV CATALINA_HOME /opt/tomcat/apache-tomcat-8.0.47
ENV PATH $PATH:$JAVA_HOME/bin
ENV CLASSPATH .:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#打包项目并拷贝到 tomcat webapps 目录
RUN mkdir /opt/webapp
ADD ./ /opt/webapp
RUN cd /opt/webapp && cp /opt/webapp/war/eureka-server.war /opt/tomcat/apache-tomcat-8.0.47/webapps/
#开启内部服务端口
EXPOSE 8080
#启动 tomcat 服务器
CMD ["./opt/tomcat/apache-tomcat-8.0.47/bin/catalina.sh","run"] && tail -f /opt/tomcat/apache-tomcat-8.0.47/logs/catalina.out
此为没有修改默认目录容器,下面我们进行修改默认访问目录操作
查看正在运行的容器:docker ps -l
之后进入容器:docker exec -it dd46f73e366e /bin/bash
进入 tomcat 修改 server.xml 文件,添加对应微服务名称:<Context path=""docBase=" 微服务名称 "debug="0"reloadable="true" />
之后要保证容器运行的状态下退出交互界面:Ctrl+p+q,我们可以看到容器仍在运行,下面我们保存一下刚才修改的容器,并以微服务命名
docker commit dd4 eureka-server
查看新生成的镜像:出现了名为 eureka-server 的镜像
删除本地不用的镜像。docker rmi -f <镜像 id>,首先先停止运行中的容器,docker stop < 镜像 id>,停止运行中的容器,要从 docker ps 里查看 id. 不是在 docker images 里查看。
Centos7 Docker离线部署Mysql5.7
1 环境信息
查看系统内核
[root@localhost /]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
2 虚拟机拉取镜像
此处资源获取在虚拟机中进行,完成后上传到服务器安装
2.1 拉取MysqL5.7镜像
[root@localhost /]# docker pull MysqL:5.7
2.2 导出镜像
[root@localhost /]# docker save -o /opt/module/software/jingxiang/MysqL57.tar MysqL:5.7
3 服务器加载镜像
将提供的docker文件夹上传到服务器的 /opt/module/software/jingxiang 目录下
3.1 导入MysqL镜像
[root@localhost /]# docker load -i /opt/module/software/jingxiang/MysqL57.tar
99b5261d397c: Loading layer [==================================================>] 58.51 MB/58.51 MB
5a8a245abd1c: Loading layer [==================================================>] 338.4 kB/338.4 kB
51734435c93c: Loading layer [==================================================>] 10.44 MB/10.44 MB
6599033b2ab2: Loading layer [==================================================>] 4.472 MB/4.472 MB
414373ffccb4: Loading layer [==================================================>] 1.536 kB/1.536 kB
2a9aab74013a: Loading layer [==================================================>] 46.15 MB/46.15 MB
7055b7f82e4c: Loading layer [==================================================>] 34.3 kB/34.3 kB
398ef8a407f7: Loading layer [==================================================>] 3.584 kB/3.584 kB
fc12e028de3b: Loading layer [==================================================>] 321.7 MB/321.7 MB
934de0c0816e: Loading layer [==================================================>] 15.87 kB/15.87 kB
94a471180601: Loading layer [==================================================>] 1.536 kB/1.536 kB
Loaded image: MysqL:5.7
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
MysqL 5.7 1e4405fe1ea9 2 weeks ago 437 MB
3.2 创建容器
[root@localhost /]# docker run -p 3306:3306 --name MysqL -e MysqL_ROOT_PASSWORD=123456 -d MysqL:5.7
1fcf644fb24c4731f70ca66edc96847452e898de7612de05b4dd188b3965883c
run 运行一个docker容器
--name 后面这个是生成的容器的名字MysqL
-p 3306:3306 表示这个容器中使用3306(第二个)映射到本机的端口号也为3306(第一个)
-e MysqL_ROOT_PASSWORD=123456 初始化root用户的密码
-d 表示使用守护进程运行,即服务挂在后台
[root@localhost docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1fcf644fb24c MysqL:5.7 "docker-entrypoint..." 25 seconds ago Up 23 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp MysqL
3.3 允许外部访问
# 进入容器
[root@localhost docker]# docker exec -it MysqL /bin/bash
root@1fcf644fb24c:/# MysqL -uroot -p123456
MysqL: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MysqL monitor. Commands end with ; or \g.
Your MysqL connection id is 2
Server version: 5.7.28 MysqL Community Server (GPL)
copyright (c) 2000, 2019, 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> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
MysqL> flush privileges;
MysqL> exit;
Bye
root@1fcf644fb24c:/# exit;
exit
3.4 启动服务
[root@localhost docker]# docker start MysqL
3.5 停止服务
[root@localhost docker]# docker stop MysqL
3.6 服务信息
服务 MysqL
版本 5.7
用户名 root
密码 123456
关于Centos7 使用Docker 部署mssql 2017的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于CentOS 7 使用docker安装mysql、CentOS 7 使用Docker搭建Mysql、centos7 64bit 安装 docker 最新版教程(Centos7 下安装 Docker Engine)、Centos7 Docker离线部署Mysql5.7等相关知识的信息别忘了在本站进行查找喔。
本文标签: