Centos7上安装docker

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

 一、安装docker

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

$ uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

$ sudo yum update

3、卸载旧版本(如果安装过旧版本的话)

$ sudo yum remove docker  docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5、设置yum源

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

$ yum list docker-ce --showduplicates | sort -r

7、安装docker

$ sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce

8、启动并加入开机启动

$ sudo systemctl start docker
$ sudo systemctl enable docker

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

$ docker version

二、docker下载tomcat镜像并运行

1、搜索tomcat镜像

docker search tomcat 

2、启动tomcat

#方式1:解释一下,-d表示后台运行,-p端口映射,前面的8088是外围访问端口(也就是本机ip对外开放的端口),后面8080是docker容器内部的端口

docker run -d -p 8088:8080 tomcat
 
 #方式2:加--name tomcat的意思,表示为此容器启一个别名叫tomcat,以后再也不用操作容器id进行关闭、进容器目录什么的,直接把容器ID换成tomcat别名
加上--restart=always  表示此容器开机启动,只要docker也设置了开机自启,docker不死
 docker run -d -p 8088:8080 --name tomcat --restart=always tomcat
 
 目前使用方式1,最简单的

tomcat启动成功图:

3、显示当前正在运行的容器

$ docker ps

4、显示所有状态的容器

$ docker ps -a

容器的状态共有 7 种:created|restarting|running|removing|paused|exited|dead。

5、启动和关闭容器

docker start 容器id;#eg:docker start 6dcf57ebf34c
docker stop 容器id;

三、docker实现war部署

1、 新建一个文件夹testJavaProject,用来专门放测试项目的war,jar包

2、查看 正在运行容器

docker ps

3、进出docker里面的tomcat容器

进入:docker exec -it 9fccf0236619 /bin/bash
退出:exit

4、查看文件列表ls(不知道为什么在tomcat容器里面不能用ll查看文件列表命令,只能用ls了,ls命令还是可以的)

5、把war复制到文件夹中testJavaProject

6、复制war包到tomcat容器中

7、退出容器后执行:重启容器

docker restart [container name]

但我发现,我没有重启的时候去浏览器打开页面,也可以打开,原因如下

原来tomcat在运行状态下是真的自动解压war,由于只是写了简单的静态页面,所以不用重启tomcat。注意:一般情况下还是要重启的,因为这只是个测试项目并没有写后端java代码,如果java代码有修改,tomcat是必须要重启的

四、使用Dockerfile制作镜像(未实际操作)

 

  借鉴博客:https://www.imooc.com/article/44582

  借鉴博客(此博客有连接数据库):https://segmentfault.com/a/1190000013096870

1、准备环境

【注意:搞这些东西的时候一定要关闭服务器的防火墙】

  CentOS7服务器一台:192.168.26.233    (服务器上安装docker就不多说了)

  springboot项目的demo一个:thymeleaf-master  (以前用来测试thymeleaf技术的一个小demo项目,正好拿来用)

2、准备测试的springboot项目:thymeleaf-master

  1. thymeleaf-master项目的指定启动端口为:8082
  2. thymeleaf-master项目本地启动后的页面:

3、把此项目打成jar包,操作如下图:

4、docker把jar包构建成镜像

    1)把上面打好的jar包,上传到CentOS服务器上,我在服务器上新建了目录/usr/local/dev/docker/testProject/,把jar包丢到testProject目录里,再建一个Dockerfile文件,此文件是来用构建镜像的配置,如下图:

     2)Dockerfile配置文件的内容:

FROM java:8
VOLUME /tmp
ADD thymeleaf-master-1.0-SNAPSHOT.jar /thymeleaf-master.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/thymeleaf-master.jar"]

5、执行docker构建镜像命令

#thymeleaf-master表示生成镜像的名称,(注意后面有个点.)
docker build -t thymeleaf-master .

6、查看打成的镜像是否存在:(可以看到有两镜像,已经成功了。docker.io/java估计是docker自动打成的jar包运行环境jdk8镜像)

7、运行刚才构建成的镜像

#这里我项目用的8082端口,这里我也映射8082端口,加上--name xxx是为了给容器取别名,方便docker命令操作
docker run -d -p 8082:8082 --name thymeleaf-master thymeleaf-master

 

来源:

      https://www.cnblogs.com/yufeng218/p/8370670.html

     https://www.cnblogs.com/spll/p/9957769.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值