Docker--部署2

一、Docker镜像创建

1、基于已有镜像的创建

在这里插入图片描述

2、基于Dockerfile创建

Dockerfile 基本操作指令
在这里插入图片描述
创建tomcat镜像基于Dockerfile

[root@docker ~]# mkdir tomcat  #创建工作目录
[root@docker ~]# cd tomcat/    #切换目录
[root@docker tomcat]# ls       #上传jdk、tomcat进入此目录
apache-tomcat-9.0.16.tar.gz   jdk-8u91-linux-x64.tar.gz
[root@docker tomcat]# vim Dockerfile   #写Dokcerfile文件
FROM centos:7   #基于基础镜像
MAINTAINER this is tomcat image   #用户信息
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-9.0.16.tar.gz /usr/local/  #复制文件到指定目录并解压
RUN mv apache-tomcat-9.0.16 /usr/local/tomcat  #解压
WORKDIR /usr/local/tomcat/bin   #指定工作目录
EXPOSE 8080   #暴露端口
ENTRYPOINT /usr/local/tomcat/bin/startup.sh && tail -f /usr/local/tomcat/logs/catalina.out   #运行tomcat并查看日志(因为执行完主进程后,容器就会退出,所以运行一个主进程使其可以以守护进程的形式在后台运行)

[root@docker tomcat]# docker build -t tomcat:v1 .  #创建镜像
Sending build context to Docker daemon  192.2MB
Step 1/14 : FROM centos:7
 ---> 8652b9f0cb4c
Step 2/14 : MAINTAINER this is tomcat image
 ---> Using cache
 ---> a5a93f5489ca
Step 3/14 : ADD jdk-8u91-linux-x64.tar.gz /usr/local/
 ---> 856a02ad3a0a
Step 4/14 : WORKDIR /usr/local/
 ---> Running in c53fe281c85f
Removing intermediate container c53fe281c85f
 ---> f378c1988032
Step 5/14 : RUN mv jdk1.8.0_91 /usr/local/java
 ---> Running in e550a8513dd2
Removing intermediate container e550a8513dd2
 ---> 4523b2a16397
Step 6/14 : ENV JAVA_HOME /usr/local/java
 ---> Running in 5180d88d69d2
Removing intermediate container 5180d88d69d2
 ---> 8abc7cfbe16b
Step 7/14 : ENV JRE_HOME ${JAVA_HOME}/jre
 ---> Running in 1e0978b1591f
Removing intermediate container 1e0978b1591f
 ---> 3c21de4a7b17
Step 8/14 : ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
 ---> Running in 556188b11373
Removing intermediate container 556188b11373
 ---> f93da06dd0ef
Step 9/14 : ENV PATH $JAVA_HOME/bin:$PATH
 ---> Running in f008f72645a3
Removing intermediate container f008f72645a3
 ---> e5ea1a21b34e
Step 10/14 : ADD apache-tomcat-9.0.16.tar.gz /usr/local/
 ---> 99e25ee313c0
Step 11/14 : RUN mv apache-tomcat-9.0.16 /usr/local/tomcat
 ---> Running in 5a8cb196278e
Removing intermediate container 5a8cb196278e
 ---> 76a55912613e
Step 12/14 : WORKDIR /usr/local/tomcat/bin
 ---> Running in 2ae1d5bd3793
Removing intermediate container 2ae1d5bd3793
 ---> a8274f536296
Step 13/14 : EXPOSE 8080
 ---> Running in 6db8f9af5871
Removing intermediate container 6db8f9af5871
 ---> 692364273b9f
Step 14/14 : ENTRYPOINT /usr/local/tomcat/bin/startup.sh && tail -f /usr/local/tomcat/logs/catalina.out
 ---> Running in 5102d276eea5
Removing intermediate container 5102d276eea5
 ---> 02882afef5dd
Successfully built 02882afef5dd
Successfully tagged tomcat:v1

在这里插入图片描述
查看宿主机访问浏览器查看
在这里插入图片描述

二、Docker的数据管理

1、数据卷

1.1 创建数据卷

[root@docker tomcat]# docker run -d -v /data1 --name tomcat3 tomcat:v1 #创建一个数据卷挂载到容器中
88fff1effffa244616ad1550f42e2380e9e300a1d32f48bb595bc7db1cb513cb
[root@docker tomcat]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS         PORTS                                         NAMES
88fff1effffa   tomcat:v1   "/bin/sh -c '/usr/lo…"   7 seconds ago    Up 6 seconds   8080/tcp                                      tomcat3
671420fb32ae   tomcat:v1   "/bin/sh -c '/usr/lo…"   46 minutes ago   Up 4 minutes   0.0.0.0:49160->8080/tcp, :::49160->8080/tcp   tomcat
[root@docker tomcat]# docker exec -it tomcat3 /bin/bash
[root@88fff1effffa /]# ls
anaconda-post.log  bin  data1  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@88fff1effffa /]#

1.2 挂载主机目录作为数据卷

[root@docker tomcat]# docker run -d -v /data1:/data1 --name tomcat4 tomcat:v1 #实现宿主机与容器之间的数据迁移
e743dd4dc55ec4121ca92da108ae63c4a555bd77b3f20dabbf3eab4c9472f637
[root@docker tomcat]# docker exec -it tomcat4 /bin/bash
[root@e743dd4dc55e /]# cd data1
[root@e743dd4dc55e data1]# touch 1
[root@e743dd4dc55e data1]# exit
exit
[root@docker tomcat]# ls /data1
1

2、数据卷容器

[root@docker tomcat]# docker run -d --volumes-from tomcat4 --name tomcat5 tomcat:v1
855e5b0f2591452b2cfaca6ef379e4b0efea995168d05411a7f85737b81d4d0a
[root@docker tomcat]# docker exec -it tomcat5 /bin/bash
[root@855e5b0f2591 /]# cd data1/
[root@855e5b0f2591 data1]# ls
1
[root@855e5b0f2591 data1]# touch 123456
[root@855e5b0f2591 data1]# exit
exit
[root@docker tomcat]# docker exec -it tomcat4 /bin/bash
[root@e743dd4dc55e /]# ls data1/
1  123456
[root@e743dd4dc55e /]# exit
exit
[root@docker tomcat]# ls /data1
1  123456
[root@docker tomcat]# 

三、Docker网络信息

1、Docker网络模式

①Bridge:使用docker0作为网桥容器,桥接容器与宿主机网络
②Host:与宿主机共享网络名称空间/网络协议栈
③Container:多个容器之间共享一个网络名称空间/网络协议栈
④None:容器有独立的Network namespace,但是没有对其进行任何网络设置,如分配veth pair和网桥连接,配置IP等(自闭空间)

2、Docker 自定义网络

2.1 查看网络列表

在这里插入图片描述

2.2 自定义网络固定IP

[root@docker tomcat]# docker network create --subnet=172.18.0.0/16 mynetwork
66c3c71a43371edc1da0d070ec52021975d7882c9f3d6c1e4d57a3576e5c6cce
[root@docker tomcat]# docker run -d --name  tomcat1  --net mynetwork --ip 172.18.0.100 tomcat:v1
2b06a237f6f1ddf6ecdca8b1b27aeb1491793555ff00bc8c10f6460773378efa
[root@docker tomcat]# docker inspect tomcat1 | grep "IPA"
            "SecondaryIPAddresses": null,
            "IPAddress": "",
                    "IPAMConfig": {
                    "IPAddress": "172.18.0.100",

2.3 端口映射

[root@docker tomcat]# docker run -d -P tomcat:v1
7cf69d0cadf9f92b8b1577365f91fb46f8446c4845967c7689de1b404210746a
[root@docker tomcat]# docker run -d -p 8080:8080 tomcat:v1
276010bd3bd3d47efc2a0917c58d163ae798316840ea3ea2863b268ce4f89cb2
[root@docker tomcat]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED              STATUS              PORTS                                         NAMES
276010bd3bd3   tomcat:v1   "/bin/sh -c '/usr/lo…"   5 seconds ago        Up 4 seconds        0.0.0.0:8080->8080/tcp, :::8080->8080/tcp     competent_bartik
7cf69d0cadf9   tomcat:v1   "/bin/sh -c '/usr/lo…"   About a minute ago   Up About a minute   0.0.0.0:49161->8080/tcp, :::49161->8080/tcp   pensive_lewin

2.4 容器互联

[root@docker tomcat]# docker run -d -P --name tomcat7  tomcat:v1 #创建源容器
1e1e7dfc8d855ddd0e84b7fdac8e9c794cc555905d38e3122e8e74627dab6a07
[root@docker tomcat]# docker run -d -P --name tomcat8 --link tomcat7:tomcat7 tomcat:v1 #创建接收容器
95f95a6b36bc5cb36ebba71a25dce517262fb3896a62d77862d85a805fa850c7
[root@docker tomcat]# docker exec -it tomcat7 /bin/bash

tomcat7
在这里插入图片描述
tomcat8
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值