一、Docker安装

  • 在Ubuntu系统下安装:
apt-get install docker

  • 在Fedora/CentOS系统下安装:
yum install docker
dnf install docker # Fedora 25+

  • 在SUSE系统下安装:
zypper install docker

二、Docker容器

  • 首先启动Docker
# 启动Docker
systemctl start docker
# 设置开机自启动,可选
systemctl enable docker

  • 启动Docker测试容器
docker run "hello-world"

  • 在启动容器时,如果使用的镜像在本地不存在,会尝试从网络上获取。
  • 在一般情况下,启动Web服务的容器,使用以下命令:
# -d:daemon,使容器在后台运行
# -p:port,指定容器的端口,这里是将容器的80端口映射到主机的8001端口
docker run -d -p 8001:80 "image_name"

  • 查看容器运行情况
docker ps

  • Docker会为容器分配一个Container ID和一个Container Name,Name可以在运行时通过-name自行指定,这两个可以用来标识容器。
  • 需要停止容器时,使用以下命令:
docker stop "container_name"
# 或使用ID查找
docker stop "container_id"

三、Docker镜像

  • Docker容器是运行的Docker镜像实例,一般情况下,我们需要制作自己的Docker镜像。
  • Docker镜像的制作依赖于Dockerfile,我们稍后在讨论Dockerfile的编写,这里假定我们有一个编写好的Dockerfile。
  • 下面的命令将在当前路径查找Dockerfile并构建一个名为“image_name”的镜像。
docker build -t "image_name" ./

  • 在构建过程中需要在网络上下载来源镜像,可能需要一段时间。
  • 如果Dockerfile中的命令都正确结束(Exit code 0),那么Docker镜像的构建也将顺利完成,我们可以通过下面的命令查看我们的所有镜像:
docker images

  • 我们还可以导出我们制作好的Docker镜像,下面的命令将image_name镜像导出为image_name.tar
docker save "image_name" > image_name.tar

  • 在另一台机器上,我们不需要网络就可以导入并使用该镜像:
docker load < image_name.tar

四、Dockerfile

  • Dockerfile本质上是一组命令集合,用于自动化构建镜像,下面以几个实例来说明Dockerfile的编写方法:
  • 实例一:LAMP(Linux+Apache+MySQL+PHP)环境配置
# 来源镜像,一般可以使用标准的系统或者带有各种环境的系统
# 显然这里使用的是标准的Ubuntu 14.04系统
FROM ubuntu:14.04
# 镜像作者
MAINTAINER wrlu
# 刷新日期
ENV REFRESHED_AT 2018-08-05
# 设定字符集
ENV LANG C.UTF-8
# RUN命令用于执行系统命令
# 因为需要自动化安装,所以最好通过-y命令跳过确认
# 更新APT软件源
RUN apt-get update -y
# 安装MySQL
RUN apt-get -y install mysql-server
# 安装Apache
RUN apt-get -y install apache2
# 安装PHP5
RUN apt-get -y install php5 libapache2-mod-php5
RUN apt-get install -yqq php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
# 删除Apache2列出目录配置
RUN sed -i 's/Options Indexes FollowSymLinks/Options None/' /etc/apache2/apache2.conf
# COPY命令可以复制文件,但是似乎不能递归复制文件
COPY IncludeAirline/* /var/www/html/
COPY IncludeAirline/airlines/* /var/www/html/airlines/
# 删除默认的主页
RUN rm /var/www/html/index.html
# 复制启动脚本
COPY start.sh /root/start.sh
RUN chmod +x /root/start.sh
# 设置启动目录以及启动脚本
ENTRYPOINT cd /root; ./start.sh
# 设置需要暴露的端口
EXPOSE 80,3306

  • 本例中还有一个启动脚本start.sh,用于导入数据库,编写如下:
#!/bin/bash
# 启动后延时
sleep 1
# 启动Apache服务器
/etc/init.d/apache2 start
# 启动MySQL数据库
find /var/lib/mysql -type f -exec touch {} ; && service mysql start
# 定义SQL文件路径
sqlfile=/var/www/html/includeAirline.sql
if [ -f $flagfile ]; then# 修改MySQL的密码mysqladmin -u root password "root"# 登录MySQL并导入SQL文件执行mysql -uroot -proot < $sqlfile# 删除SQL文件rm -f $sqlfile
fi
# 此处注意,如果命令执行完后脚本退出
# 则Docker容器也会因为没有前台应用运行而中止
# 所以这里使用一个前台命令来保活Docker容器
tail -f /var/log/apache2/error.log

  • 实例二:PHP环境配置:
# 来源镜像,自带Apache+PHP环境
FROM php:7.0-apache
MAINTAINER tl
ENV REFRESHED_AT 2018‐08‐03
ENV LANG C.UTF‐8
# ADD命令在COPY命令的基础上,具有自动解包tar的功能
ADD web_tired.tar /var/www/html/
EXPOSE 80

  • 实例三:LTMJ(Linux+Tomcat+MySQL+JSP)环境配置
FROM ubuntu:16.04
MAINTAINER wrlu
ENV REFRESHED_AT 2018-08-05
ENV LANG C.UTF-8
RUN apt-get update -y
RUN apt-get -y install mysql-server
# 安装wget,因为Docker提供的镜像是最小镜像,所以用到的其他工具需要自行安装
RUN apt-get -y install wget
# 安装Java 8
RUN apt-get -y install openjdk-8-jre
# 下载Tomcat 8服务器
RUN wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
# 解压tar.gz
RUN tar -xzf apache-tomcat-8.5.32.tar.gz -C /root
RUN mv /root/apache-tomcat-8.5.32 /root/tomcat
# 删除默认页面
RUN rm -rf /root/tomcat/webapps/*
# 拷贝war文件
COPY CAAC-SQL-Injection.war /root/tomcat/webapps/
COPY wafwtf.sql /root/
COPY start.sh /root/start.sh
RUN chmod +x /root/start.sh
ENTRYPOINT cd /root; ./start.sh
# Tomcat使用8080端口,不同于Apache
EXPOSE 8080

  • 启动脚本如下:
#!/bin/bash
sleep 1
find /var/lib/mysql -type f -exec touch {} ; && service mysql start
chmod +x /root/tomcat/bin/startup.sh
# 启动Tomcat服务器
/root/tomcat/bin/startup.sh
sqlfile=/root/wafwtf.sql
if [ -f $flagfile ]; thenmysqladmin -u root password "root"mysql -uroot -proot < $sqlfilerm -f $sqlfile
fi
# 容器保活
tail -f /root/tomcat/conf/server.xml

docker server 容器连接sql_Docker使用指南相关推荐

  1. docker server 容器连接sql_Docker 容器的网络连接

    文章首发于公众号<程序员果果> 地址:https://mp.weixin.qq.com/s/DzF-ZwaY4QtlgM32I5wybg 一.Docker 容器的网络基础 docker0( ...

  2. docker server 容器连接sql_docker 容器连接 host的sql server失败

    报错内容::"A network-related or instance-specific error occurred while establishing a connection to ...

  3. Docker多容器连接-以Nginx+PHP为例

    Docker提供了多个容器直接访问的方法,最简单的方式是直接使用端口映射-p参数指定映射的端口或者-P映射所有端口,多个容器直接通过网络端口进行访问. 但网络端口映射方式并不是Docker中连接多个容 ...

  4. 快速入门:使用 Docker 运行 SQL Server 容器映像

    Choose your command shell BashPowerShellCmd 适用对象:SQL Server(仅限 Linux)Azure SQL 数据库 Azure SQL 数据仓库 并行 ...

  5. 【MySQL】记录 Navicat连接 docker mysql 容器,备份docker mysql 注意事项

    文章目录 Navicat连接 docker mysql 容器 定时任务备份 docker mysql ,解决 备份数据库为空 问题 Navicat连接 docker mysql 容器 确保 登录 用户 ...

  6. 53.Azure中CentOS的Docker里安装运行SQL Server容器

    大家熟悉SQL Server可以安装在Windows系统上,我也介绍了SQL Server可以安装在LInux上,那么今天我将给大家介绍SQL Server安装在Docker上成为容器快速运行起来 首 ...

  7. 如何连接sql托管实例_如何使用Windows托管的文件共享来支持SQL Server容器

    如何连接sql托管实例 In a previous article, Automate Delivery of SQL Server Production Data Environments Usin ...

  8. 使用 Docker 运行 SQL Server 容器映像 在Windows操作系统上,重设置密码和操作数库

    快速入门:使用 Docker 运行 SQL Server 容器映像 2020/09/07 V O G M Choose your command shell 适用于: 是SQL Server(所有支持 ...

  9. Docker入门 - 005 Docker 容器连接

    Docker 容器连接 前面我们实现了通过网络端口来访问运行在docker容器内的服务.下面我们来实现通过端口连接到一个docker容器 网络端口映射 我们创建了一个 python 应用的容器. do ...

最新文章

  1. 交流电流变换器 : SCT1013 特性测试
  2. 解决VMware—MAC冲突问题
  3. TENSORFLOW GUIDE: EXPONENTIAL MOVING AVERAGE FOR IMPROVED CLASSIFICATION
  4. c语言中lookup函数功能,Lookup函数详解
  5. 数值的加减会改变python中id,在python中调用Nan值并更改为数字
  6. VS2017 15.8第二个预览版本提升了对CPU Profiling和F#的支持
  7. 前端学习(1669):前端系列实战课程之半透明拖拽思路
  8. STL之函数对象和谓词
  9. VBOX下安装RHEL5.4增强工具失败的解决办法
  10. 小程序开发教程 微信小程序视频教程
  11. ol3 加载天地图服务
  12. hdmi tv 的edid_HDMI之EDID分析
  13. Google Pay 初步集成
  14. 热炒了的《消防设施操作员》,想报考却为何冷中带静?
  15. laravel-excel使用(老猫包子店的故事)
  16. Docker+Consul+Registrator实现服务注册与发现
  17. 循迹智能小车 循黑线 智能小车 红外循迹传感器 单片机
  18. 吃鸡显示服务器资源不足,win7系统玩吃鸡提示系统资源不足无法完成请求的服务如何解决...
  19. 双色球python十种算法_13种最有效的推算双色球方法
  20. 编码质量评估-编码视频效果测试场景归纳

热门文章

  1. python setdefault,Python笔记setdefault用法
  2. 回调函数自定义传参_koroFileHeader:一个用于生成文件头部注释和函数注释的插件...
  3. matlab系统的根轨迹,实验五 利用MATLAB绘制系统根轨迹
  4. QPS和并发数,这次给你说清楚
  5. gitlab数据迁移
  6. 人工智能论坛_诚邀共享 | 2020人工智能医疗产业前瞻论坛
  7. 想转行软件测试,简历怎么包装成1年工作经验的测试工程师
  8. linux 定时每天执行php,linux下使用cronjob定时执行php脚本
  9. 中one_气场不比BBA差,续航里程远、加速快的理想ONE值得买吗?
  10. php unset 静态变量,php如何删除静态变量