本文來自網易雲社區。java
是一種資源管理技術,將計算機的各類資源予以抽象、轉換後呈現出來, 打破實體結構間的不可切割的障礙,使用戶能夠比本來更好的方式來應用這些資源。linux
Hypervisornginx
兩種模型docker
幾種分類vim
+ 優勢 + Guest OS無需修改,速度和功能都很是不錯+ 缺點 + 基於Hosted模式的全虛擬產品性能不是特別優異
+ 優勢 + 與全虛擬化相比,架構更精簡,經過修改Guest OS能夠最大限度的減小處理開銷+ 缺點 + 須要對Guest OS修改
+ 優勢 + 幾乎沒有任何開銷,由於只是共享OS和主機而沒有經過虛擬機+ 缺點 + 缺少靈活性,不能在任意OS上面實施,用戶共享主機和OS須要注意版本
虛擬化與容器差別centos
虛擬化的好處服務器
Docker的優點架構
虛擬化產品概覽app
Build, Ship, and Run Any App, Anywhere運維
安裝
Docker Toolbox
Toolbox使用Machine和VirtualBox在虛擬機中建立了一個引擎來運行容器
Docker For MAC
操做演示
docker run -itd -v /volumedata:/volume --name busybox-volume busybox
docker volume create --name hellodocker run -it -v hello:/world --name busybox-volume-hello busybox
部署advisor監控(http://192.168.64.4:8080/containers/)
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest
部署私有倉庫(http://192.168.64.4:8080/containers/)
docker run -d -p 50001:5000 \
--restart=always \
-v ~/dockermapping/registry:/var/lib/registry \
--name registry registry
設置受信倉庫和鏡像倉庫
/etc/default/docker/var/lib/boot2docker/etc/sysconfig/docker
Dockerfile構建
Dockerfile是對鏡像建立過程的描述腳本
例子1:構建JDK8鏡像
FROM centos:latest
MAINTAINER CZL
ADD jdk-8u131-linux-x64.tar.gz /opt
RUN ln -s /opt/jdk1.8.0_131/ /opt/jdk
ENV JAVA_HOME /opt/jdk
ENV PATH $JAVA_HOME/bin;$PATH
CMD /opt/jdk/bin/java -version
例子2:構建包含consul-template的nginx鏡像
FROM nginx:1.13.1MAINTAINER czl
RUN apt-get update
RUN apt-get -qqy install wget unzip vim iputils-ping curl
RUN wget https://releases.hashicorp.com/consul-template/0.18.3/consul-template_0.18.3_linux_amd64.zipRUN unzip consul-template_0.18.3_linux_amd64.zip
RUN mv consul-template /usr/local/bin/ADD ./start.sh /usr/local/bin/start.sh
RUN chmod +x /usr/local/bin/start.sh
CMD [ "/usr/local/bin/start.sh" ]
Maven插件構建
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <imageName>${docker.registry}/${project.artifactId}:${project.version}</imageName> <dockerDirectory>${project.build.outputDirectory}</dockerDirectory> <!--<dockerHost>https://192.168.99.100:2376</dockerHost>--> <!--<dockerCertPath>${basedir}/certs</dockerCertPath>--> <resources> <resource> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration></plugin>
Docker Compose編排
version: '2'services: consul-server: hostname: consul-server image: consul mem_limit: 640m ports: - "8400:8400" - "8500:8500" - "8600:53/udp" nginx-server: hostname: nginx-server image: mydocker.com:50001/nginx-consul-template ports: - "81:80" volumes: - ~/xuexibao/czllearnworkspace/document/docker-compose/nginx-consul-template/mapping/:/data command: [sh,"/data/start.sh"]
networks: default: external: name: eureka-network
網易雲容器服務爲用戶提供了無服務器容器,讓企業可以快速部署業務,輕鬆運維服務。容器服務支持彈性伸縮、垂直擴容、灰度升級、服務發現、服務編排、錯誤恢復及性能監測等功能。
本文來自網易雲社區,經做者陳志良受權發佈。
瞭解 網易雲 :
網易雲官網:https://www.163yun.com
網易雲社區:https://sq.163yun.com/blog
新用戶大禮包:https://www.163yun.com/gift
更多網易研發、產品、運營經驗分享請訪問網易雲社區。