Docker

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(文档)
(指南)
 
(未显示1个用户的25个中间版本)
第9行: 第9行:
 
==原理==
 
==原理==
 
Docker 是封装自 [[LXC]] 和 [[cgroup]] 的虚拟化技术。
 
Docker 是封装自 [[LXC]] 和 [[cgroup]] 的虚拟化技术。
 +
 +
Docker的overlay存储驱动建立在OverlayFS文件系统之上,它允许将一个文件系统与另一个文件系统重叠(overlay),在上层的文件系统中记录更改,而下层的文件系统保持不变,OverlayFS从Linux 3.18版本以后已进入内核主线。
  
 
==指南==
 
==指南==
 +
下载Docker,如[https://docs.docker.com/docker-for-mac/install/ macOS] 或
 +
 
Docker Toolbox包含:
 
Docker Toolbox包含:
 
* Docker Client
 
* Docker Client
第23行: 第27行:
 
  $ docker-compose version
 
  $ docker-compose version
 
  $ docker run debian /bin/echo hello world
 
  $ docker run debian /bin/echo hello world
 +
 +
一些配置参考:cat /etc/docker/daemon.json
 +
{
 +
  "registry-mirrors": ["https://registry.docker-cn.com"],
 +
  "insecure-registries": ["172.30.2.245:5000"],
 +
  "exec-opts": ["native.cgroupdriver=systemd"]
 +
}
 +
进入一个正在运行容器,如:
 +
docker exec -t -i <id/container_name>  /bin/bash
 +
 +
清理所有Docker容器、容器卷和镜像 [https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes How To Remove Docker Images, Containers, and Volumes]
 +
docker rm -f $(docker ps -qa)
 +
docker volume rm $(docker volume ls -q)
 +
docker rmi -f $(docker images -q)
 +
清除所有未使用或悬挂(Unused or Dangling)的镜像、容器、卷和网络
 +
docker container prune
 +
docker system prune
 +
 +
==[[Debian]]==
 +
[https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-debian-10 How To Install and Use Docker on Debian 10]
 +
$ sudo apt update
 +
$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
 +
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
 +
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
 +
$ sudo apt update
 +
$ apt-cache policy docker-ce
 +
$ sudo apt install docker-ce
 +
$ sudo systemctl status docker
 +
 +
 +
==CentOS==
 +
[[CentOS]] 8 install Docker
 +
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
 +
or yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 +
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
 +
yum install docker-ce
 +
systemctl start docker
  
 
==Python==
 
==Python==
第31行: 第72行:
 
*[https://github.com/docker/docker-status docker-status]
 
*[https://github.com/docker/docker-status docker-status]
 
*[https://github.com/docker/docker-registry docker-registry] 创建自己的私有注册库
 
*[https://github.com/docker/docker-registry docker-registry] 创建自己的私有注册库
 +
 +
==项目==
 +
*[https://github.com/shipyard/shipyard Shipyard]
 +
*[https://github.com/squidnyan/docker-registry-ui Docker Registry UI]
 +
*[https://github.com/kevana/ui-for-docker UI For Docker]
 +
*[[docker/seagull|Seagull]]
 +
*[https://github.com/openstack/kolla Kolla] - Deploying [[OpenStack]] using Docker
  
 
==部署==
 
==部署==
第37行: 第85行:
 
* 通过[[Apache Mesos]]管理Docker,Twitter、Paypal、数人云、灵雀云采用。
 
* 通过[[Apache Mesos]]管理Docker,Twitter、Paypal、数人云、灵雀云采用。
 
* 通过[[kubernetes]]管理Docker,UCloud采用。
 
* 通过[[kubernetes]]管理Docker,UCloud采用。
 +
* 通过[https://github.com/docker/swarm/ Docker Swarm]部署Docker集群。
 
[http://docs.huihoo.com/infoq/qconshanghai/2015/%E5%AE%B9%E5%99%A8%E4%B8%8E%E4%BA%91%E8%AE%A1%E7%AE%97/ >>>更多细节]
 
[http://docs.huihoo.com/infoq/qconshanghai/2015/%E5%AE%B9%E5%99%A8%E4%B8%8E%E4%BA%91%E8%AE%A1%E7%AE%97/ >>>更多细节]
 
*[http://docs.huihoo.com/docker/OpenStack-Heat+Docker.pdf Docker plugin for Heat]
 
*[http://docs.huihoo.com/docker/OpenStack-Heat+Docker.pdf Docker plugin for Heat]
 +
*[https://github.com/ContainerSolutions/ImageWolf ImageWolf] - Fast Distribution of Docker Images on Clusters
  
 
==文档==
 
==文档==
 +
*[http://docs.huihoo.com/javaone/2015/CON7506-Java-EE-Application-Servers-Multitenant-or-Containerized-Both.pdf Java EE Application Servers: Multitenant or Containerized? Both!]
 
*[http://docs.huihoo.com/javaone/2015/CON6832-Debugging-Java-Apps-in-Containers-No-Heavy-Welding-Gear-Required.pdf Debugging Java Apps in Containers: No Heavy Welding Gear Required]
 
*[http://docs.huihoo.com/javaone/2015/CON6832-Debugging-Java-Apps-in-Containers-No-Heavy-Welding-Gear-Required.pdf Debugging Java Apps in Containers: No Heavy Welding Gear Required]
 +
*[http://docs.huihoo.com/javaone/2015/BOF7537-Running-Oracle-WebLogic-Server-on-Docker-Challenges-and-Workarounds.pdf Running Oracle WebLogic Server on Docker: Challenges and Workarounds]
 
*[http://docs.huihoo.com/go/gopherchina/2015/1-8%20Go%20%e5%9c%a8%e6%8c%81%e7%bb%ad%e4%ba%a4%e4%bb%98%e4%b8%ad%e7%9a%84%e5%ae%9e%e8%b7%b5.pdf Golang, Microservices, Continuous Delivery and Docker]
 
*[http://docs.huihoo.com/go/gopherchina/2015/1-8%20Go%20%e5%9c%a8%e6%8c%81%e7%bb%ad%e4%ba%a4%e4%bb%98%e4%b8%ad%e7%9a%84%e5%ae%9e%e8%b7%b5.pdf Golang, Microservices, Continuous Delivery and Docker]
 
*[http://docs.huihoo.com/go/gopherchina/2015/2-8%20docker%e5%8e%9f%e7%90%86%e4%b8%8e%e5%ba%94%e7%94%a8%e5%ae%9e%e8%b7%b5.pdf Docker 原理与应用实践]
 
*[http://docs.huihoo.com/go/gopherchina/2015/2-8%20docker%e5%8e%9f%e7%90%86%e4%b8%8e%e5%ba%94%e7%94%a8%e5%ae%9e%e8%b7%b5.pdf Docker 原理与应用实践]
第86行: 第138行:
 
<gallery>
 
<gallery>
 
image:Container-ecosystem.png|容器生态系统
 
image:Container-ecosystem.png|容器生态系统
 +
image:Docker-Container-App-Lifecycle.png|Docker应用生命周期
 
image:docker-architecture.jpg|架构
 
image:docker-architecture.jpg|架构
 
image:what-is-docker.png|Docker是什么
 
image:what-is-docker.png|Docker是什么
第91行: 第144行:
 
image:virtual-machine-and-container.png|虚拟机和容器
 
image:virtual-machine-and-container.png|虚拟机和容器
 
image:docker-and-openstack.png|OpenStack
 
image:docker-and-openstack.png|OpenStack
 +
image:openstack-docker-hadoop.png|与OpenStack/Hadoop的融合
 
image:docker-and-lxc.png|Docker和LXC的关系
 
image:docker-and-lxc.png|Docker和LXC的关系
 
image:docker-at-redhat.png|红帽的方向
 
image:docker-at-redhat.png|红帽的方向
第98行: 第152行:
 
image:iaas-vs-paas.png|IaaS和PaaS
 
image:iaas-vs-paas.png|IaaS和PaaS
 
image:openshift-all-in-one.png|OpenShift
 
image:openshift-all-in-one.png|OpenShift
 +
image:Red-Hat-Container-Stack.png|红帽容器堆栈
 
image:OpenShift-Kubernetes-Docker-HDP.png|容器PaaS与大数据
 
image:OpenShift-Kubernetes-Docker-HDP.png|容器PaaS与大数据
 +
image:aliyun-docker-repo.png|阿里Docker镜像加速器
 +
image:harbor-cephfs.png|Harbor私有容器仓库
 +
image:data-containers.jpg|数据容器
 
</gallery>
 
</gallery>
  
第104行: 第162行:
 
*[https://www.docker.io/ Docker官网]
 
*[https://www.docker.io/ Docker官网]
 
*[https://github.com/dotcloud/docker Docker @ GitHub]
 
*[https://github.com/dotcloud/docker Docker @ GitHub]
 +
*[https://htmlpreview.github.io/?https://github.com/redhat-developer/docker-java/blob/javaone2015/readme.html Docker for Java Developers]
 
*[https://github.com/veggiemonk/awesome-docker Awesome Docker] [[image:awesome.png]]
 
*[https://github.com/veggiemonk/awesome-docker Awesome Docker] [[image:awesome.png]]
 
*[https://github.com/Friz-zy/awesome-linux-containers Awesome Linux Containers] [[image:awesome.png]]
 
*[https://github.com/Friz-zy/awesome-linux-containers Awesome Linux Containers] [[image:awesome.png]]
第128行: 第187行:
 
*[https://github.com/jcloudpub/speedy Speedy:来自京东的Docker镜像存储系统]
 
*[https://github.com/jcloudpub/speedy Speedy:来自京东的Docker镜像存储系统]
 
*[https://blog.openshift.com/openshift-v3-deep-dive-docker-kubernetes/ OpenShift V3 Deep Dive Tutorial | The Next Generation of PaaS]
 
*[https://blog.openshift.com/openshift-v3-deep-dive-docker-kubernetes/ OpenShift V3 Deep Dive Tutorial | The Next Generation of PaaS]
 +
*[http://www.youruncloud.com/blog/105.html 当微服务遇见容器] [http://www.youruncloud.com/blog/100.html Docker定义存储-让应用无痛运行]
  
 +
[[category:virtualization]]
 +
[[category:container]]
 
[[category:cloud computing]]
 
[[category:cloud computing]]
 
[[category:microservices]]
 
[[category:microservices]]
第134行: 第196行:
 
[[category:OpenStack]]
 
[[category:OpenStack]]
 
[[category:go]]
 
[[category:go]]
[[category:huihoo]]
 

2022年1月14日 (五) 05:06的最后版本

Docker: the Linux container engine

Docker是一款基于轻量级虚拟化技术的容器引擎,使用 Go 语言开发,采用 Apache V2 许可协议。

Docker可以在容器内部快速自动化部署应用,并可以通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率,并且提升诸如IO等方面的性能。

OpenStack也在其最新发行版(代号Havana)中引入了Docker。

Docker-logo.png

目录

[编辑] 原理

Docker 是封装自 LXCcgroup 的虚拟化技术。

Docker的overlay存储驱动建立在OverlayFS文件系统之上,它允许将一个文件系统与另一个文件系统重叠(overlay),在上层的文件系统中记录更改,而下层的文件系统保持不变,OverlayFS从Linux 3.18版本以后已进入内核主线。

[编辑] 指南

下载Docker,如macOS

Docker Toolbox包含:

  • Docker Client
  • Docker Machine
  • Docker Compose
  • Docker Kitematic
  • VirtualBox

下载安装Docker Toolbox

$ docker version
$ docker-machine version
$ docker-compose version
$ docker run debian /bin/echo hello world

一些配置参考:cat /etc/docker/daemon.json

{
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "insecure-registries": ["172.30.2.245:5000"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}

进入一个正在运行容器,如:

docker exec -t -i <id/container_name>  /bin/bash

清理所有Docker容器、容器卷和镜像 How To Remove Docker Images, Containers, and Volumes

docker rm -f $(docker ps -qa)
docker volume rm $(docker volume ls -q)
docker rmi -f $(docker images -q)

清除所有未使用或悬挂(Unused or Dangling)的镜像、容器、卷和网络

docker container prune
docker system prune

[编辑] Debian

How To Install and Use Docker on Debian 10

$ sudo apt update
$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
$ sudo apt update
$ apt-cache policy docker-ce
$ sudo apt install docker-ce
$ sudo systemctl status docker


[编辑] CentOS

CentOS 8 install Docker

curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
or yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
yum install docker-ce
systemctl start docker

[编辑] Python

[编辑] 项目

[编辑] 部署

Docker的多种部署方式:

  • 通过OpenStack管理Docker,采用Nova Docker Driver方案来集成,京东采用。
  • 通过Apache Mesos管理Docker,Twitter、Paypal、数人云、灵雀云采用。
  • 通过kubernetes管理Docker,UCloud采用。
  • 通过Docker Swarm部署Docker集群。

>>>更多细节

[编辑] 文档

>>>更多幻灯片

[编辑] 图书

[编辑] 用户

>>>更多用户

[编辑] 开发

[编辑] 服务商

[编辑] 图集

[编辑] 链接

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱