开发 vs 运维
一个代码,在开发的机器上能够正常运行,而把代码交给运维后,在运维的机器上不能运行。这是由于开发和运维的环境不同,那么如何解决这个问题呢?
ans: 我们不再单纯把代码给运维,而是把我们的代码加上各种中间件,系统,环境,配置,依赖等各种东西打成一个镜像,直接把镜像给运维,运维就可以直接运行。每个软件就是一个集装箱,相互隔离。一只鲸鱼就是一个镜像。
称之为:一次封装,到处运行!!!
就像是宠物店买的小金鱼,你直接把金鱼拿回来放到自己家的鱼缸里,金鱼活不成,金鱼只能在原来的鱼缸里面活,所以就直接把鱼缸也一起买来。
解决了运行环境和配置问题的软件容器,方便做持续继承并有助于整体发布的容器虚拟化技术。
客户端通过守护进程来操作docker容器
https://www.runoob.com/docker/centos-docker-install.html
这个就行
curl -sSL https://get.daocloud.io/docker | sh这个不是大问题,直接百度得了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DQg6mO9O-1601886843333)(https://raw.githubusercontent.com/suyan-liang/picgo/main/photos/20201005162742.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S1JhI9rz-1601886843340)(https://raw.githubusercontent.com/suyan-liang/picgo/main/photos/20201005162757.png)]
docker中镜像的每一层都可以被共享
docker commit -a="zs" -m="some changes" 容器id 新名字:tag
docker exec -it 容器id /bin/bash
docker run -it -p 8080:8090 镜像id->交互运行
docker run -d -p 8080:8090 镜像id->后台运行
在容器中不可以使用vi去编辑文件,如果想修改配置文件可以在容器外部修改然后复制到容器之中
docker cp 本机文件 容器名:文件夹 注意这个文件夹要全,因为一个容器就是一个小的Linux
docker cp /dubbo.properties tomcat-01:/usr/local/tomcat/webapps/dubbo-admin/WEB-INF
要,修改后需要提交才能保存
将docker中产生的数据持久化,类似于redis的rdb和aof,就相当于在主机和容器之间进行绑定
也可以实现容器间的数据共享
docker run -it -v 宿主机下绝对路径:容器下的绝对路径 镜像名
docker run -it -v /host:/container 831691599b88
docker run -it -v /host:/container:ro 831691599b88–>如果是ro的话代表只读,此时容器中无法进行修改
it -v /host:/container:ro 831691599b88`–>如果是ro的话代表只读,此时容器中无法进行修改
