Dockerfile简单脚本的书写
目录:
tomcat的Dockerfile脚本 nginx.1.12.0的Dockerfile脚本 mysql的Dockerfile脚本 删除错误镜像和容器脚本
tomcat的Dockerfile脚本
cd / opt
mkdir tomcat
cd tomcat
vim Dockerfile
FROM centos:7
MAINTAINER this is tomcat < lzp>
ADD jdk- 8 u91- linux- x64. tar. gz / usr/ local /
WORKDIR / usr/ local /
RUN mv jdk1. 8.0 _91 / usr/ local / java
ENV JAVA_HOME / usr/ local / java
ENV JAVA_BIN / usr/ local / java/ bin
ENV JRE_HOME / usr/ local / java/ jre
ENV PATH $PATH:/ usr/ local / java/ bin:/ usr/ local / java/ jre/ bin
ENV CLASSPATH / usr/ local / java/ jre/ bin:/ usr/ local / java/ lib:/ usr/ local / java/ jre/ lib/ charsets. jar
ADD apache- tomcat- 8.5 .16 . tar. gz / usr/ local
WORKDIR / usr/ local /
RUN mv apache- tomcat- 8.5 .16 / usr/ local / tomcat8
EXPOSE 8080
ENTRYPOINT [ "/usr/local/tomcat8/bin/catalina.sh" , "run" ]
docker build - t tomcat:centos .
docker run - d
nginx.1.12.0的Dockerfile脚本
cd / opt
mkdir nginx
cd nginx
vim Dockerfile
FROM centos:7
MAINTAINER this is nginx < lzp>
RUN yum - y update
RUN yum - y install wget pcre- devel zlib- devel make zlib gcc gcc- c+ + openssl- devel net- tools
RUN useradd - M - s / sbin/ nologin nginx
ADD nginx- 1.12 .0 . tar. gz / usr/ local / src
WORKDIR / usr/ local / src
WORKDIR nginx- 1.12 .0
RUN . / configure \
ENV PATH / usr/ local / nginx/ sbin:$PATH
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;" >> / usr/ local / nginx/ conf/ nginx. conf
WORKDIR / root/ nginx
ADD run. sh / run. sh
RUN chmod 755 / run. sh
CMD [ "/run.sh" ]
vim run. sh
/ usr/ local / nginx/ sbin/ nginx
docker build - t nginx:new .
docker run - d - P nginx:new
mysql的Dockerfile脚本
mkdir mysql
cd mysql/
vim Dockerfile
FROM centos:7
MAINTAINER this is mysql < lzp>
RUN yum - y update
RUN yum - y install \
ncurses \
ncurses- devel \
bison \
cmake \
make \
gcc \
gcc- c+ +
RUN useradd - s / sbin/ nologin mysql
ADD mysql- boost- 5.7 .20 . tar. gz / usr/ local / src
WORKDIR / usr/ local / src/ mysql- 5.7 .20 /
RUN cmake \
- DCMAKE_INSTALL_PREFIX= / usr/ local / mysql \
- DMYSQL_UNIX_ADDR= / usr/ local / mysql/ mysql. sock \
- DSYSCONFDIR= / etc \
- DSYSTEMD_PID_DIR= / usr/ local / mysql \
- DDEFAULT_CHARSET= utf8 \
- DDEFAULT_COLLATION= utf8_general_ci \
- DWITH_INNOBASE_STORAGE_ENGINE= 1 \
- DWITH_ARCHIVE_STORAGE_ENGINE= 1 \
- DWITH_BLACKHOLE_STORAGE_ENGINE= 1 \
- DWITH_PERFSCHEMA_STORAGE_ENGINE= 1 \
- DMYSQL_DATADIR= / usr/ local / mysql/ data \
- DWITH_BOOST= boost \
- DWITH_SYSTEMD= 1 && make && make install
RUN chown - R mysql:mysql / usr/ local / mysql/
RUN rm - rf / etc/ my. cnf
ADD my. cnf / etc
RUN chown mysql:mysql / etc/ my. cnf
ENV PATH= / usr/ local / mysql/ bin:/ usr/ local / mysql/ lib:$PATH
WORKDIR / usr/ local / mysql/
RUN bin/ mysqld \
RUN cp / usr/ local / mysql/ usr/ lib/ systemd/ system/ mysqld. service / usr/ lib/ systemd/ system/
EXPOSE 3306
RUN echo - e "#!/bin/bash \nsystemctl enable mysqld" > / run. sh
RUN chmod 755 / run. sh
RUN sh / run. sh
CMD [ "init" ]
vim my. cnf
[ root@localhost mysql- 5.7 .20 ]
[ client]
port = 3306
default - character - set = utf8
socket = / usr/ local / mysql/ mysql. sock
[ mysql]
port = 3306
default - character - set = utf8
socket = / usr/ local / mysql/ mysql. sock
[ mysqld]
user = mysql
basedir = / usr/ local / mysql
datadir = / usr/ local / mysql/ data
port = 3306
character_set_server= utf8
pid- file = / usr/ local / mysql/ mysqld. pid
socket = / usr/ local / mysql/ mysql. sock
server- id = 1
sql_mode= NO_ENGINE_SUBSTITUTION, STRICT_TRANS_TABLES, NO_AUTO_CREATE_USER, NO_AUTO_VALUE_ON_ZERO, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, PIPES_AS_CONCAT, ANSI_QUOTES
docker build - t centos:mysql .
docker run
docker exec - it 镜像ID / bin/ bash
grant all privileges on * . * to 'root' @'% ' identified by ' abc123';
grant all privileges on *.* to ' root'@' % ' localhost identified by ' abc123';
删除错误镜像和容器
cd / opt
vim none. sh
docker ps - a | grep "Exited" | awk '{print $1 }' | xargs docker stop
docker ps - a | grep "Exited" | awk '{print $1 }' | xargs docker rm
docker images | grep none | awk '{print $3 }' | xargs docker rmi