关键词:
一.创建ssh镜像
1.创建镜像目录
2. 创建编写dockerfile文件
3. 生成镜像
4. 启动容器并修改root密码
二. 构建Systemctl镜像
1.创建镜像目录方便管理
2.创建编写dockerfile文件
3. 生成镜像
4.启动容器,并挂载宿主机目录挂载到容器中,和进行初始化
5.进入容器
或者用第二种方法:
三、构建nginx镜像
1.创建镜像目录方便管理
2.创建编写dockerfile文件
3. 编写脚本
4.生成镜像
5.浏览器访问测试
四、构建tomcat 镜像
以下同流程同上面一样,这里就不操作演示了,跟着命令打就行了
1.创建镜像目录方便管理
mkdir /opt/tomcat
cd /opt/tomcat
cp /opt/jdk-8u91-linux-x64.tar.gz /opt/tomcat
cp /opt/apache-tomcat-8.5.16.tar.gz /opt/tomcat
2.创建编写dockerfile文件
vim Dockerfile
FROM centos:7
MAINTAINER this is tomcat image <clj>
ADD jdk-8u91-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 JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib
ENV PATH $JAVA_HOME/bin:$PATH
ADD apache-tomcat-8.5.16.tar.gz /usr/local/
WORKDIR /usr/local/
RUN mv apache-tomcat-8.5.16 /usr/local/tomcat
EXPOSE 8080
#CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]
3. 生成镜像
docker build -t tomcat:centos .
docker run -d --name tomcat01 -p 1216:8080 tomcat:centos
4.浏览器访问测试
http://192.168.80.10:1216
五、构建mysql镜像
1.创建镜像目录方便管理
mkdir /opt/mysqld
cd /opt/mysqld
2.创建编写dockerfile文件
vim Dockerfile
FROM centos:7
MAINTAINER this is mysql image <clj>
RUN yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make
RUN useradd -M -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 \\
--initialize-insecure \\
--user=mysql \\
--basedir=/usr/local/mysql \\
--datadir=/usr/local/mysql/data
RUN cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
EXPOSE 3306
ADD run.sh /usr/local/src
RUN chmod 755 /usr/local/src/run.sh
RUN sh /usr/local/src/run.sh
#CMD ["/usr/sbin/init"]
3.编写my.cnf
脚本
vim my.cnf
[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
4.编写run.sh
脚本
vim run.sh
#!/bin/bash
/usr/local/mysql/bin/mysqld
systemctl enable mysqld
5.创建新镜像、启动容器,并进行初始化
docker build -t mysql:centos .
#启动容器,并进行初始化
docker run --name=mysql_server -d -P --privileged mysql:centos /usr/sbin/init &
6.进容器给权限
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f9a4d8f6c65f mysql:centos "/usr/sbin/init" 17 seconds ago Up 16 seconds 0.0.0.0:49153->3306/tcp mysql_server
7.进入容器,授权远程连接 mysql
docker exec -it f9a4d8f6c65f /bin/bash
mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
grant all privileges on *.* to 'root'@'localhost' identified by 'abc123';
flush privileges;
8.在客户端连接mysql容器
mysql -h 192.168.80.10 -u root -P 49153 -pabc123
docker容器之镜像管理,端口映射,容器互联(代码片段)
docker镜像的分层Dockerfile中的每个指令都会创建一个新的镜像层;镜像层将会被缓存和复用;当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效;某一层的镜像缓存失效... 查看详情
docker容器之镜像管理端口映射容器互联(代码片段)
docker镜像的分层?Dockerfile中的每个指令都会创建一个新的镜像层;?镜像层将会被缓存和复用;?当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效;?某一层的镜像缓存失... 查看详情
容器技术之dockerfile
...6327.html;今天我们来聊一聊docker的另一个制作镜像的方式dockerfile; 什么是dockerfile?所谓dockerfile就是用来描述docker镜像制作过 查看详情
docker容器高级篇(代码片段)
文章目录一、Dockerfile文件1.dockerfile基础知识2.docker执行dockerfile的大致流程3.dockerfile常用保留字4.dockerfile构建镜像示例二、dockernetwork1.dockernet常用指令2.docker的网络模式三、docker-compose容器编排1.下载安装2.三个步骤3.compose常用命令... 查看详情
docker学习笔记——镜像制作(dockerfile)(代码片段)
...绍3.制作基础镜像4.应用镜像制作使用commit提交镜像5.使用Dockerfile创建应用镜像1)Dockerfile关键字2)Dockerfile应用案例6.容器镜像在dockerhost存储位置1)写时复制与用时分配2)Overlay及Overlay27.docker存储状态1)运行前2)启动后3)下载镜像后4)运... 查看详情
docker系列教程之四dockerfile入门(代码片段)
在上一篇的文章中,我们把 Docker 容器的工作流程剖析的十分清楚了,我们大体可以知道 Docker 组件协作运行容器可以分为以下几个过程:Docker 客户端执行 dockerrun 命令Dockerdaemon 发现本地没有我们需... 查看详情
docker容器dockerfile镜像实战案例(代码片段)
dockerfile镜像实战案例一、构建SSH镜像二、构建Systemctl镜像三、构建nginx镜像四、构建tomcat镜像五、构建mysql镜像一、构建SSH镜像①创建镜像目录方便管理mkdir/opt/sshdcd/opt/sshd②创建编写dockerfile文件vimDockerfile#第一行必须指明基于的... 查看详情
docker:dockerfile使用介绍(代码片段)
...:Docker入门教程介绍了Docker基本概念,其中镜像、容器和Dockerfile。我们使用Dockerfile定义镜像,依赖镜像来运行容器,因此Dockerfile是镜像和容器的关键,Dockerfile可以非常容易的定义镜像内容,同时在我们后期的微服务实践中,Do... 查看详情
docker容器dockerfile镜像实战案例(代码片段)
文章目录构建SSH镜像Systemctl镜像nginx镜像tomcat镜像mysql镜像构建SSH镜像mkdir/opt/sshdcd/opt/sshdvimDockerfile#第一行必须指明基于的基础镜像FROMcentos:7#作者信息MAINTAINERthisissshimage<wl>#镜像的操作指令RUNyum-yupdateRUNyum-yinstallopenssh* 查看详情
docker的数据管理镜像dockerfile创建(代码片段)
...的创建1、基于已有镜像创建2、基于本地模板创建3、基于Dockerfile创建1.联合文件系统(UnionFS)2.镜像加载原理3.Dockerfile4.Docker镜像结构的分层5.Dockerfile操作指令4、dockerfile案例一、docker的数据管理管理Docker容器中 查看详情
docker入门之三:docker构建私有镜像入门到实践(代码片段)
docker的简单使用1.docker构建私有镜像1.1.使用Dockerfile定制镜像1.2.构建镜像1.docker构建私有镜像1.1.使用Dockerfile定制镜像在空目录创建文件,命名为Dockerfile[hadoop@hadoop101file]$cddocker/[hadoop@hadoop101docker]$mkdirmydockerfile[hadoop@hadoop101docker]$to... 查看详情
dockerfile构建过程(代码片段)
...令都会创建一个新的镜像层,并对镜像进行提交docker执行dockerfile的大致流程第一步,docker从基础镜像运行一个容器第二步,执行一条指令并对容器做出修改第三步,执行类似dockercommit的操作提交一个新的镜像层第四步,docker再基于刚提... 查看详情
docker基础之镜像详解与dockerfile及优化~(代码片段)
一、镜像分成1.1、镜像的原理镜像包含以下:①:基础镜像(baseimage):比如centos7②:依赖环境:比如gcc、gcc-c++、make、jdk、jre、gd③:应用服务软件包④:应用服务的相关配置文件⑤:启动方... 查看详情
docker基础之镜像详解与dockerfile及优化~(代码片段)
一、镜像分成1.1、镜像的原理镜像包含以下:①:基础镜像(baseimage):比如centos7②:依赖环境:比如gcc、gcc-c++、make、jdk、jre、gd③:应用服务软件包④:应用服务的相关配置文件⑤:启动方... 查看详情
云原生之使用docker部署python应用(代码片段)
...python文件1.创建目录2.编辑test.py文件四、构建镜像1.编辑dockerfile文件2.使用dockerfile构建镜像五、运行镜像容器1.运行python_app容器2.查看容器状态六、访问Python应用一、检查系统版本1.检查系统版本[root@n 查看详情
docker实践之03-dockerfile指令详解(代码片段)
目录FROM,指定基础镜像RUN,执行命令COPY,复制文件ADD,复制并解压文件CMD,容器启动命令ENTRYPOINT,入口点ENV,设置环境变量ARG,构建参数VOLUME,定义匿名卷EXPOSE,声明端口WORKDIR,指定工作目录USER,指定当前用户HEALTHCHECK,健... 查看详情
容器安全之dockerfile安全扫描(代码片段)
一、Dockerfile扫描工具checkovhadolint(构建最佳实践Docker镜像。)也可以考虑dockerscan二、checkovDockerfileConfigurationScaning-checkovcheckov不仅可以扫描dockfile,也可以扫描Cloudformation、AWSSAM、Kubernetes、Helmcharts、Kustomize、镜像等。Checkov支持对Doc... 查看详情
浅谈docker之docker常用命令及dockerfile基础命令(记录)
一、Docker镜像相关命令查看本地镜像dockerimages 从远程仓库下载镜像dockerpullmysql:5.7搜索mysql5.7镜像 dockersearchmysql:5.7 删除镜像dockerrmimysql:5.7 修改本地镜像名字 dockertagmysql:5.7mysql:v1 查看... 查看详情