1.docker的通俗理解
当我们使用docker的时候,我们会先获取一个镜像(images),然后用这个镜像启动一个容器(container),镜像我们可以理解为我们安装系统所使用的ghost镜像,当然,这和虚拟机有所不同,一个容器的资源由docker进程进行分配,而且必须只能在依赖宿主机的环境下运行,不过容器的目录是相对独立的。
2.docker的应用
1.准备工作
安装docker
yum -y install docker-io
service docker start
docker run hello-world
现在,docker会运行一个名为hello-world的镜像,当然,本地实际上并没有,当docker发现本地不存在的时候,会从远程仓库pull一份过来。
获取centos镜像
docker pull centos
这个镜像里装了一个纯净版的centos
docker images

在这里我们可以看到我们可用的镜像以及大小
运行一个该镜像的容器
docker run -dit --name va -p 3000:8080 --privileged=true docker.io/centos:latest /sbin/init
这里要解释一下,name是指定这个容器的名称,这里是va,如果不指定,则会自动生成一个随机的名称,p是指端口映射,我们后面会安装tomcat,使用默认端口8080,现在映射为3000,以便我们从外部访问。最后面是镜像名称和tag名称,使用dit以便后台运行(否则启动后就会停止)。这里如果我们在加个/bin/bash,则会进入容器的命令行。
同样的,手动进入命令行如下:
docker exec -it va /bin/bash
进去之后,ls命令一下,你会发现内部的目录结构和普通linux一样,只不过是单独存在的。
按ctrl+p+q,退回到宿主机,这么做可以保证容器是保持运行的,否则直接exit容器就关机了。
2.安装JDK
将JDK的压缩包上传至宿主机,然后从宿主机上复制到容器上
docker cp jdk.tar.gz va:/
接下来配置环境变量,通常来说我们都是写在/etc/profile文件中,但是容器重启后,会发现原先的配置不起作用,需要重新刷新下才行,具体原因是profile并不会自动export,而是操作系统启动的时候读取的,而容器启动并没有这一步,所以每次都要source一下,解决办法就是在/root/.bashrc中配置,或者在dockerfile中添加环境变量。具体配置方式不再介绍了。
3.安装tomcat
和之前一样复制到容器中,tomcat的安装相当简单,直接./startup.sh就行了,然后我们来到外部浏览器打开尝试,如图:
4.打包
#打包成镜像
docker commit container-name new_image:tag
#上传至dockerhub
docker push doraz/va
#导出打成本地 tar 包
docker export -o va.tar va
#将 tar 包导入成镜像
docker import va.tar va_images
参考资料
Docker 搭建 Tomcat + Mysql
Dockerfile文件详解
教你如何修改运行中的docker容器的端口映射
Docker容器进入的4种方式
Docker 给运行中的容器设置端口映射的方法


0 条评论