前言:
今天想用树莓派装个Docker 我的树莓派安了centos7
树莓派的CPU是 ARMv8的 百度了一下资料说Docker有AArch64版本,那就动手试一试。
(由于Centos官方没有64位 img 只有iso 于是就在网上淘来一个AArch64版本 地址:https://www.west.cn/info/html/caozuoxitong/Linux/20180709/4285295.html)
进入正题:
添加yum仓库 :yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
使用yum 安装docker :yum install docker-ce
安装完成后可以使用 docker -v 查看是否成功
之后就是启动docker : service docker start
启动玩就可以开始hello-world之旅了
使用命令 docker search "Imag_name" 查询镜像-当然也可以自己做(后面在讲) Imag_name 便是镜像的名字。
找到要用的镜像之后便是把他pull下来 : docker pull "Imga_name"
可以通过命令: docker images 查看已有的镜像
运行镜像:
有了镜像那就该让他跑起来。
执行 docker run -p 8081:8080 tomcat 命令
docker run 是运行容器。后面可以加很多参数。具体参照百度
-d 指定容器运行于前台还是后台,默认为false
-p 映射端口外部端口映射容器内部端口 8081:8080 的意思就是 容器内部的程序端口是8080与之映射的外部端口是8081.
端口后面的tomcat 是容器的名字
镜像已经放入容器,并且成功跑起来了
可以使用docker ps -a 查看所有的的容器
使用 docker stop "imga_name" 可以停止容器 相反 start 可以启动容器
这里就不得不提一下容器与镜像的区别
这里run 和start 还是有区别的。run是把镜像装入容器,然后start 这是两个步骤。start仅仅是运行容器
镜像是装在容器里的。镜像不能单独运行而且在容器是只读的。类似于当年的小霸王学习机插的卡。插啥卡运行啥东西。但是在容器内修改文件并不影响镜像。
当然镜像也是可以自己制作。我们第二part在聊聊dockerfile
操作容器内部资源:
既然我们的tomcat容器已经跑起来了,是不是该让他运行点东西
使用docker exec -it "imag_name" bash 去操作容器内部的文件
看到这我们就可以发现docker 与虚拟机的差别 ,docker 只是在进程上进行隔离,或者说是文件上。而虚拟机则是在操作系统层面的隔离。
进入到容器内部看到了tomcat,找到它的webapp 。还是熟悉的味道,但是这里不能直接使用cp mv等命令。记住这它可不是你的linux,他是一个虚拟的文件资源哟,
所以得exit 退出容器,在外面拷贝进来 使用 docker cp xxx.war "imag_name" :/usr/local/tomcat/webapps
和linux 的cp很像,cp紧紧跟着的就是 linux下的文件路径,接着是你的镜像名字或者id都行,接一个:加路径 代表是在这个镜像下的路径。这样就复制进去了
然后重启。stop 在start。
记住任何容器内的操作都需要先运行容器才能进行。否则是无法操作的。
然后就是使用其他电脑访问一下把。我扔进去的war包是最近在搭建的Jenkins。登陆IP加映射的端口号
这样就ok啦。
当然。不想要的容器可以直接删除 docker rm "imag_name" 但是得停止运行容器才能删除
有了docker 再也不用搭建环境了。有mysql 的镜像,redis 的镜像。都是一键启动是不是很爽!下期我们讲第二part 手动构建镜像 dockerfile。