学习docker(一)

参考文献:

一、http://www.linuxidc.com/Linux/2014-12/110034.htm

二、http://www.sxt.cn/u/756/blog/5306

三、http://blog.csdn.net/world_ding/article/details/46602131

四、https://my.oschina.net/sunchp/blog/616526(安装tomcat)

五、http://blog.csdn.net/birdben/article/details/49879485(编写Dockerfile



1、安装docker

yum install -y docker-io


2、启动docker,并且设置开机启动

service docker start

chkconfig docker on

or

systemctl start docker.service

systemctl enable docker.service


Docker 创建安装有tomcat的镜像,流程为:先下载镜像,用镜像启动容器,在容器中安装tomcat后保存安装了tomcat容器为新镜像。


3、下载官方centos到本地

docker pull centos

查看centos

docker images centos


4、运行docker

  1. [root@localhost ~]# docker run --t centos /bin/bash
  2. [root@dbf66395436d /]#
我们可以看到,CentOS 容器已经被启动,并且我们得到了 bash 提示符。在 docker 命令中我们使用了 “-i 捕获标准输入输出”和 “-t 分配一个终端或控制台”选项。若要断开与容器的连接,输入 exit。

5、在容器里面安装jdk,tomcat

a、查看yum库中都有哪些jdk版本

yum search java|grep jdk

b、选择1.7版本进行安装

yum install java-1.7.0-openjdk

c、安装tomcat

(1)docker 退出容器 命令

ctrl+d 退出容器且关闭, docker ps 查看无

ctrl+p+q 退出容器但不关闭, docker ps 查看有

 (2)如何把tomcat安装包传给容器

docker run -i -t -v /root/software/:/root/software38/ --privileged=true  67591570dd29  /bin/bash

  • -i:表示以“交互模式”运行容器

  • -t:表示容器启动后会进入其命令行

  • -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

(3)Docker挂载主机目录,访问相应的文件出现Premission denied的权限访问问题

问题原因及解决办法
   原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题:
   1.在运行容器的时候,给容器加特权,及加上 --privileged=true 参数:
docker run -i -t -v /root/software/:/root/software38/ --privileged=true  67591570dd29  /bin/bash
(4)tomcat安装完了之后,就要做tomcat镜像了


d、创建Tomcat镜像

(1)exit,退出之前的容器

(2)[root@promote ~]# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
288a839be492        67591570dd29        "/bin/bash"         25 minutes ago      Up 25 minutes              berserk_mirzakhani


docker commit 67591570dd29 sso

[root@promote ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
sso                 latest              08e0f0951fae        9 seconds ago       266.4 MB
docker.io/centos    latest              67591570dd29        11 weeks ago        191.8 MB


e、启动Tomcat容器

正如上面所描述的那样,可以通过“镜像名”或“镜像 ID”来启动容器,与上次启动容器不同的是,

现在不再进入容器的命令行,而是直接启动容器内部的 Tomcat 服务。此时,需要使用以下命令:

docker run -p 58080:8080 -v /root/webapps/:/root/software38/sso/webapps/ --name sso_1 sso 



遇到的问题

(1)进入容器之后,在容器中安装完软件(tomcat,jdk),再退出,创建新的镜像,然后再登录这个新的镜像做的容器,但是发现原来安装的软件(tomcat,jdk)都不见了?

猜你喜欢

转载自blog.csdn.net/ghj751105352/article/details/60140342
今日推荐