
docker
docker镜像源
任然不行?
彻底解决docker:docker: Get https://registry-1.docker.io/v2/: net/http: request canceled 报错-CSDN博客
注意端口号后面加一个/
基础知识
一次下载,多次运行:运行镜像就创建一个新的隔离环境,即容器,互不干扰
启动的docker就是docker server,是一个守护进程,一直等待用户输入命令,一旦输入就会先判断本地是否有镜像,没有就去仓库获取(pull)
忽略了系统和环境的差异
什么是镜像?
将应用所需的函数库、依赖、配置等与应用一起打包得到的就是镜像
什么是容器?
为每个镜像的应用进程创建的隔离运行环境就是容器
什么是镜像仓库?
存储和管理镜像的服务就是镜像仓库,
DockerHub是目前最大的镜像仓库,其中包含各种常见的应用镜像
容器也有自己的IP和端口,但是对外隔离,外界无法访问
于是将其进行映射到宿主机上,直接访问宿主机的端口就能访问服务
Docker命令详见官方文档:Docker Docs
docker pull:拉取镜像
docker images:查看本地镜像
docker rmi:删除镜像
docker build:自己建立镜像
docker save:镜像压缩
docker push:上传至仓库
docker ps:查看容器运行情况 ps -a:查看所有容器
docker run:每次都会创建一个容器
docker start:启动,不会创建容器
docker rm:删除容器
docker logs:查看日志 -f :持续查看
docker exec:进入容器 -it:添加终端
每一个容器会有其必要的最小化的”系统“,可以看作一个特制的最小的系统
docker inspect:查看容器详情
数据卷
默认双向绑定!!!
自定义镜像
镜像不是只有一整个文件,而是分层的,是很多个压缩包组成了一个镜像
这样就可以复用一些基础的,共用的层,在以后构建镜像时就不用再重头开始了,直接从共用的最后一步开始就行
点之前是有一个空格的!!!
网络
但是这种自动分配到的ip,一旦容器重启,就可能改变,所以是不推荐使用的
所以推荐使用自定义的网络来让容器之间互相访问
注意这样可以通过容器名来互相访问,十分方便
创建时就加入网络: --network
dockercompose
前后端什么玩意全部当做个整体一起部署
多容器部署
-d : 后台运行