化妆品商城网站建设,做ps的素材哪个网站,微信怎么推广,房地产销售基础知识新手必看什么是docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现#xff0c;基于 Linux 内核的 cgroup#xff0c;namespace#xff0c;以及 OverlayFS 类的 Union FS 等技术#xff0c;对进程进行封装隔离#xff0c;属于 操作系统层面的虚拟化技术。由于隔离的进程独…什么是docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现基于 Linux 内核的 cgroupnamespace以及 OverlayFS 类的 Union FS 等技术对进程进行封装隔离属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程因此也称其为容器。最初实现是基于 LXC从 0.7 版本以后开始去除 LXC转而使用自行开发的 libcontainer从 1.11 版本开始则进一步演进为使用 runC 和 containerd。 简单来说就是用golang语言开发的一项基于linux的lxc技术的容器管理软件
docker结构 Docker本身架构
发展历史
物理机-虚拟机-虚拟机容器技术LXC,linux container-docker为代表的容器管理技术。
linux本身是支持lxc的用于资源隔离基于namespace cgroup
相比虚拟机容器更加轻量级 容器
linux本身是支持lxc的用于资源隔离基于namespace cgroup 容器和其他传统的环境相比
容器的作用
运行镜像可以直接多外提供服务
隔离进程隔离资源限制资源直接和硬件对接无虚拟机格外的消耗
相关概念
1. 镜像
打包了代码和运行环境的包是静态文件不能直接对外提供服务
2. 容器
3. 仓库
公有仓-docker registry私有仓企业-harbor
docker使用
1. 创建一个容器运行一个镜像
docker run xxx[nginx,mysql] [-d]
它表示如下
下载镜像如果不存在的话初始化容器分配隔离资源如访问ip等
2. 如何进入docker下的某个容器
docker exec [-ti] docker-case sh
3. 如何删除容器
docker rm -f [container name] 或者 docker rm [conatiner id]
4. 宿主机如何访问容器
docker run --name xxxx -d -p [宿主机port]:[容器port] image-name
比如
docker run --name my-ubuntu-nginx -d -p 8080:80 asx-nginx:ubunt让后执行curl localhost:容器端口就好了可以通过公网访问了
5. 拉镜像
docker pull imagetag 比如 docker pull ubuntulatest
5. 构建对象
docker build [.]当前路径[-t] image-name:tage [-f] dockerfile-name
dockerfile-name是一些列docker可识别的脚本文件比如
docker build . -t asx-nginx:ubunt -f Dockerfile
镜像的相关操作
镜像的操作和流程图如下
相关命令
1. 删除镜像
docker rmi [image-name]
1. 删除镜像
docker rmi [image-name]
2. 导出镜像到文件
docker save -o file-name.file_type imagetag比如 docker save -o nginx.tar nginx:latest
3. 从文件中导入镜像
docker load -i file-name.file_type比如docker load -i nginx-ubuntu.tar
仓库的相关操作
仓库分为本地仓库和公共仓库通常是使用公共仓库除非建立自己的仓库
1. 建立私有仓
docker run -d -p 5000:5000 --restart always --name registry registry:22. 推送image
tag image 的仓库地址为本地仓 docker tag ubuntu localhost:5000/ubuntupush tag后的image
docker push localhost:5000/ubuntu3. 下载image
docker pull localhost:5000/ubuntu4. 容器数据持久化
挂机主机目录
docker run --name xxx -d -v /var/log:/var/log nginx:alpine
docker run --name mysql -e MYSQL_ROOT_PASSWORD123456 -d -v /opt/mysql/:/var/lib/mysql mysql:5.7使用valomue卷
docker volume ls
docker volume create vol-name
docker run --name xxx -d -v vol-name:/var/log:vol-name/var/log nginx:alpine访问case: curl -x http://[localhost|public-ip]:port/v2/ubuntu/tags/list 访问
5. 查看私有仓的images
容器和宿主机的交互
文件容器-宿主机
docker cp[operate] file container-name/pathcase
docker cp /tmp/test.txt nginx:/tmp2.容器-宿主机
docker cp container-name/filepath server/pathcase
docker cp nginx:/tmp/file.txt ./tmp