求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 

Docker 入门实战
Docker 教程
Docker 架构
Docker 安装
Ubuntu Docker 安装
CentOS Docker 安装
Windows Docker 安装
Docker使用
Docker Hello World
Docker 容器使用
Docker 镜像使用
Docker 容器连接
Docker实例
Docker 安装 Nginx
Docker 安装 PHP
Docker 安装 MySQL
Docker 安装 Tomcat
Docker 安装 Python
Docker 安装 Redis
Docker 安装 MongoDB
Docker 安装 Apache
Docker参考手册
Docker 常用命令
 
 

Docker 安装 Tomcat
105 次浏览
13次
 捐助

Docker 安装 MySQL

方法一、通过 Dockerfile构建

创建Dockerfile

首先,创建目录mysql,用于存放后面的相关东西。

w3cschool@w3cschool:~$ mkdir -p ~/tomcat /webapps ~/tomcat/logs ~/tomcat/conf

data目录将映射为mysql容器配置的数据文件存放路径

logs目录将映射为mysql容器的日志目录

conf目录里的配置文件将映射为mysql容器的配置文件

进入创建的mysql目录,创建Dockerfile

FROM java:8-jre

ENV CATALINA_HOME /usr/local/tomcat

ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME

# runtime dependencies for Tomcat Native Libraries

# Tomcat Native 1.2+ requires a newer version of OpenSSL than debian:jessie has available (1.0.2g+)
# see http://tomcat.10.x6.nabble.com/VOTE-Release-Apache-Tomcat-8-0-32-tp5046007p5046024.html (and following discussion)
ENV OPENSSL_VERSION 1.0.2h-1
RUN { \
      echo 'deb http://httpredir.debian.org/debian unstable main'; \
      } > /etc/apt/sources.list.d/unstable.list \
      && { \
# add a negative "Pin-Priority" so that we never ever get packages from unstable unless we explicitly request them
      echo 'Package: *'; \
      echo 'Pin: release a=unstable'; \
      echo 'Pin-Priority: -10'; \
      echo; \
# except OpenSSL, which is the reason we're here
      echo 'Package: openssl libssl*'; \
      echo "Pin: version $OPENSSL_VERSION"; \
      echo 'Pin-Priority: 990'; \
      } > /etc/apt/preferences.d/unstable-openssl
RUN apt-get update && apt-get install -y --no-install-recommends \
      libapr1 \
      openssl="$OPENSSL_VERSION" \
      && rm -rf /var/lib/apt/lists/*

# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
RUN set -ex \
      && for key in \
      05AB33110949707C93A279E3D3EFE6B686867BA6 \
      07E48665A34DCAFAE522E5E6266191C37C037D42 \
      47309207D818FFD8DCD3F83F1931D684307A10A5 \
      541FBE7D8F78B25E055DDEE13C370389288584E7 \
      61B832AC2F1C5A90F0F9B00A1C506407564C17A3 \
      79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED \
      9BA44C2621385CB966EBA586F72C284D731FABEE \
      A27677289986DB50844682F8ACB77FC2E86E29AC \
      A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 \
      DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 \
      F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE \
      F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23 \
      do \
      gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
      done

ENV TOMCAT_MAJOR 8
ENV TOMCAT_VERSION 8.0.35
ENV TOMCAT_TGZ_URL https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz

RUN set -x \
\
      && curl -fSL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz \
      && curl -fSL "$TOMCAT_TGZ_URL.asc" -o tomcat.tar.gz.asc \
      && gpg --batch --verify tomcat.tar.gz.asc tomcat.tar.gz \
      && tar -xvf tomcat.tar.gz --strip-components=1 \
      && rm bin/*.bat \
      && rm tomcat.tar.gz* \
      \
      && nativeBuildDir="$(mktemp -d)" \
      && tar -xvf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1 \
      && nativeBuildDeps=" \
gcc \
libapr1-dev \
libssl-dev \
make \
openjdk-${JAVA_VERSION%%[-~bu]*}-jdk=$JAVA_DEBIAN_VERSION \
" \
      && apt-get update && apt-get install -y --no-install-recommends $nativeBuildDeps       && rm -rf /var/lib/apt/lists/* \
      && ( \
export CATALINA_HOME="$PWD" \
      && cd "$nativeBuildDir/native" \
      && ./configure \
--libdir=/usr/lib/jni \
--prefix="$CATALINA_HOME" \
--with-apr=/usr/bin/apr-1-config \
--with-java-home="$(docker-java-home)" \
--with-ssl=yes \
      && make -j$(nproc) \
      && make install \
) \
      && apt-get purge -y --auto-remove $nativeBuildDeps \
      amp;& rm -rf "$nativeBuildDir" \
      && rm bin/tomcat-native.tar.gz

# verify Tomcat Native is working properly
RUN set -e \
      && nativeLines="$(catalina.sh configtest 2>&1)" \
      && nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')" \
      && nativeLines="$(echo "$nativeLines" | sort -u)" \
      && if ! echo "$nativeLines" | grep 'INFO: Loaded APR based Apache Tomcat Native library' >&2; then \
      echo >&2 "$nativeLines"; \
      exit 1; \
      fi

EXPOSE 8080
CMD ["catalina.sh", "run"]

通过Dockerfile创建一个镜像,替换成你自己的名字

w3cschool@w3cschool:~/tomcat$ docker build -t tomcat .

创建完成后,我们可以在本地的镜像列表里查找到刚刚创建的镜像

w3cschool@w3cschool:~/tomcat$ docker images|grep tomcat
tomcat latest 70f819d3d2d9 7 days ago 335.8 MB

方法二、docker pull mysql

查找Docker Hub上的mysql镜像

这里我们拉取官方的镜像,标签为5.6

w3cschool@w3cschool:~/tomcat$ docker pull tomcat

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为mysql,标签为5.6的镜像。

使用mysql镜像

运行容器

w3cschool@w3cschool:~/tomcat$ docker run

--name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat
acb33fcb4beb8d7f1ebace6f50f5fc204b1dbe9d5248

81267aa715c61cf75320
w3cschool@w3cschool:~/tomcat$

命令说明:

1.-p 3306:3306:将容器的3306端口映射到主机的3306端口

2.-v $PWD/conf/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf

3.-v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs

4.-v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data

5.-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码

查看容器启动情况

w3cschool@w3cschool:~/tomcat$ docker ps
CONTAINER ID IMAGE COMMAND ... PORTS NAMES
acb33fcb4beb tomcat "catalina.sh run" ...

0.0.0.0:8080->8080/tcp tomcat

通过浏览器访问


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



105 次浏览
13次
 捐助

 
 

每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号