摘要:了解開源的容器平臺用于分享管理容器的平臺使用客戶端服務器架構模式。守護進程會處理復雜繁重的任務,例如建立運行發布你的容器。客戶端和守護進程之間通過或者進行通信。
Step1:了解Docker
Step2:Docker基本命令開源的容器平臺:Golang https://github.com/docker/docker
安裝
Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平臺 -- Docker Hub Docker 使用客戶端-服務器 (C/S) 架構模式。Docker 客戶端會與 Docker 守護進程進行通信。Docker 守護進程會處理復雜繁重的任務,例如建立、運行、發布你的 Docker 容器。Docker 客戶端和守護進程可以運行在同一個系統上,當然你也可以使用 Docker 客戶端去連接一個遠程的 Docker 守護進程。Docker 客戶端和守護進程之間通過 socket 或者 > RESTful API 進行通信。我的是centos7.2安裝請參考官方的Install的文字文檔
Step3:創建容器查看
$docker search centos
下載
$docker pull centos
使用阿里云的鏡像 阿里云鏡像- 打開管理界面 - 我的加速器 $sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service $sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/$docker daemon --registry-> mirror=https://***.mirror.aliyuncs.com|g" /etc/systemd/system/docker.service $sudo systemctl daemon-reload $sudo service docker restart
Step4:管理容器#docker run centos #docker run 鏡像(如果沒有這個鏡像,就回去自動下載它) 創建容器并執行一個命令 #docker run centos ls 查看正在運行的容器 #docker ps 查看所有得容器 #docker ps -a(-all)
Step5:帶互動的容器*基于一個鏡像可以創建很多容器 創建容器加名字 #docker run --name demo-server centos /bin/echo "demo" 查看容器 #docker ps -a 移除容器 #docker rm (容器ID|name) 查看日志 #docker logs demo-server(容器名字)官方的命令文檔:Doc
Step6:后臺運行一個容器Docker Run 使用方法: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 創建一個新的容器 #參數optios: 帶互動的容器,可以進入容器運行內部: -i, --interactive Keep STDIN open even if not attached 大家都知道tty是什么東西了吧 -t, --tty Allocate a pseudo-TTY 官方一個互動案例:我的
官方案例:
Step7:退出容器后,重新進入可交互的容器運行后臺: -d, --detach Run container in background and print container ID 停止運行 #docker stop (id|name) 刪除所有已經停止的容器 #docker rm $(docker ps -a -q)
Step8:基于當前centos的nodejs環境進行提交容器退出容器 #exit 退出后重新進入可以交互的container #docker attach (id|name)
Step9:如何使用Dockerfile 創建鏡像##添加 [官方文檔](https://docs.docker.com/engine/reference/commandline/commit/) 當我們修改了容器后,我們想把這個作為一個新的鏡像進行發布 這里我把centos安裝了nodejs環境的作為一個images進行提交 #!當然如果你想學習Nodejs,那么在我的博客中請轉移到Nodejs分類目錄; #docker commit -a zhaojunlike -m "test-commit nodejs" nodejs-test zhaojunlike/nodejs-test:latest #移除官方文檔
#docker rmi [id|name]文檔部分提交鏡像說明Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] Create a new image from a container"s changes Options: -a, --author string Author (e.g., "John Hannibal Smith查看鏡像") -c, --change value Apply Dockerfile instruction to the created image (default []) --help Print usage -m, --message string Commit message -p, --pause Pause container during commit (default true) #docker images 接下來我們使用自己的鏡像 #docker run zhaojunlike/nodejs-test node -e "console.log(1)" 輸出結果:1 #
附頁官方文檔
Dockerfile中,我們使用指令去指定一些操作的配置,建議對比官方文檔,沒毛病
指令說明:
FROM:
- FROM- FROM : - FROM @ MAINTAINER
作者RUN
- RUN(shell form, the command is run in a shell, which by default is /bin/sh -c on Linux or cmd /S /C on Windows) - RUN ["executable", "param1", "param2"] (exec form) CMD
指令太多了,官方文檔每一個解釋都相當完善
現在我寫好了一個Dockerfile文件我們去構建他
官方文檔由于個人愚昧,我貼了一端安裝nginx的代碼
#FROM 基于餒個鏡像進行創建,這里我們基于我們已經安裝好的centos FROM centos MAINTAINER zhaojunlike #當然這里肯定不是這么寫的,我只是測試一下 RUN yum install zlib-devel pcre-devel gcc wget make -y RUN wget http://nginx.org/download/nginx-1.10.2.tar.gz RUN mkdir /home/tmp RUN tar -zxf /nginx-1.10.2.tar.gz -C /home/tmp RUN cd /home/tmp/nginx-1.10.2 && ./configure --prefix=/usr/local/nginx1.10.2/ RUN cd /home/tmp/nginx-1.10.2 && make && make install RUN /usr/local/nginx1.10.2/sbin/nginx然后進行鏡像構建
#[root@localhost myDocker]# docker build --tag zhaojunlike:centos-nginx-install . 之所以是. docker會自動去當前目錄找Dockerfile這個文件當中的過程就是把sh全部丟進去了。
在build成功后我們可以#docker images 就可以看到我們的鏡像了but這些是什么鬼,可能是我在build很多次都不成功產生的cache
我要去rmi掉# docker rm $(docker ps -a -q)
然后我們看看餒
docker真心爽
媽媽再也不容擔心,環境安裝麻煩啦。
不過接下來得問題,是讓我自己去訪問這個鏡像里面得nginx web,那么下一篇應該是如何守護進程跑容器,如何進行網絡管理了吧
docker hub 成千上萬的容器,大部分都是其他開發者上傳的,我們也去上傳一個。
官方文檔
具體工作請看完文檔吧
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27948.html
摘要:系列教程,持續更新系列教程應用初見系列教程處理靜態文件系列教程使用模板引擎系列教程路由控制中間件系列教程綜合搭建登錄注冊頁面系列教程實現登錄注冊功能這篇教程主要介紹構建服務器,簡單引用本教程的版本要格外注意版本號案例簡單利用搭建服務器文件夾 koa2系列教程,持續更新 koa2系列教程:koa2應用初見 koa2系列教程:koa2處理靜態文件 koa2系列教程:koa2使用模板引擎 ...
摘要:第篇搭建私有庫及管理界面一大致介紹基于前面的部署,容器一多非常不便于管理,于是急需一個自己的私有庫而目前市面上大多數的私有庫基本上都是后臺服務加前臺構成,于是選來選去,最后選擇了管理界面之所以選擇這款管理界面,我就簡述闡述一下,基于以下 SpringCloud(第 055 篇)CentOS7 搭建 docker-registry 私有庫及管理界面 - 一、大致介紹 1、基于前面dock...
摘要:第篇搭建私有庫及管理界面一大致介紹基于前面的部署,容器一多非常不便于管理,于是急需一個自己的私有庫而目前市面上大多數的私有庫基本上都是后臺服務加前臺構成,于是選來選去,最后選擇了管理界面之所以選擇這款管理界面,我就簡述闡述一下,基于以下 SpringCloud(第 055 篇)CentOS7 搭建 docker-registry 私有庫及管理界面 - 一、大致介紹 1、基于前面dock...
摘要:第篇中用部署一個簡單的基于服務治理發現的項目一大致介紹糾結了一下下,這么簡單的部署流程是否需要詳細的貼出來,然而糾結了一下還是將這個簡單的部署流程補充完整了經過上節的講解,相信大家已經對的命令操作都有了一定的了解,這里我就暫且默認大家都擁 SpringCloud(第 053 篇)CentOS7 中用 Docker 部署一個簡單的基于 Eureka 服務治理發現的項目 - 一、大致介紹 ...
閱讀 3470·2021-09-22 15:02
閱讀 3506·2021-09-02 15:21
閱讀 2133·2019-08-30 15:55
閱讀 2780·2019-08-30 15:44
閱讀 776·2019-08-29 16:56
閱讀 2414·2019-08-23 18:22
閱讀 3342·2019-08-23 12:20
閱讀 3091·2019-08-23 11:28