docker學習1|使用docker輸出hello world
點選上方“中興開發者社群”,關注我們
每天讀一篇一線開發者原創好文
▎作者簡介
作者朱磊是開源軟體愛好者,致力於web應用部署、運維領域解決方案的研究。將web應用部署在Docker上能夠極大的簡化部署、方便維護,文章將以初學者的角度從輸出hello world開始,一步步的揭開使用Docker部署web應用的神祕面紗。
1.什麼是docker
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的Linux機器上,也可以實現虛擬化,容器是完全使用沙箱機制,相互之間不會有任何介面。
docker使用場景
docker有很多用途,目前對於我來說,可以預期的場景為:
1.提高開發效率:一般的開發工作中,開發環境的搭建是件頭疼的事情,每個開發人員都得重複搭一套一致的環境,使用docker後,可以搭建一次後存為映象,其他團隊成員就可以直接使用了。
2.快速部署:在虛擬機器之前,引入新的硬體資源需要消耗幾天的時間。Docker的虛擬化技術將這個時間降到了幾分鐘,Docker只是建立一個容器程式而無需啟動作業系統,這個過程只需要秒級的時間。
更多用途介紹,見參考資料5:Docker 的應用場景在哪裡?
2. docker安裝與啟動
一般的Linux發行版本中,已經預裝了docker,輸入如下命令確認是否已經預裝docker
docker --version
#如果已經存在會輸出當前docker版本
Docker version 1.10.3, build 694b432-unsupported
可以使用yum升級到最新版本
yum update docker
如果當前系統中不存在docker,可以使用yum安裝
yum install docker
docker的啟動停止命令如下:
#啟動
service docker start
#停止
service docker stop
#重啟
service docker restart
3. 搜尋與下載映象
3.1 查詢可用映象
#例如查詢centos的映象
docker search centos
#結果如下組織:
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
#STARS:映象的星數,一般選擇星數高的下載
#OFFICIAL:是否是官方的映象,如果有一般選擇官方映象
3.2 下載可用映象
#下載centos的官方映象
docker pull centos
因docker預設使用官方映象源,速度很慢,所以我們一般可以選擇更換映象源。
3.3 配置國內映象加速
登入阿里雲映象服務,https://cr.console.aliyun.com/?spm=5176.100239.blogcont29941.12.eJkJlD#/accelerator,獲取自己的加速器地址(專用映象加速地址,需要自己獲取)
按照頁面幫助文件,修改配置檔案/etc/docker/daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://abcdefg.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
配置完成後,重新啟動docker發現,docker無法啟動。
service docker restart
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
依據參考資料1,需要centos/redhat上配置其他檔案。
#刪除錯誤的配置檔案
rm /etc/docker/daemon.json
#重新配置
vim /etc/sysconfig/docker
#OPTIONS中增加registry-mirror屬性
OPTIONS='--selinux-enabled --log-driver=journald --registry-mirror=https://abcdefg.mirror.aliyuncs.com'
DOCKER_CERT_PATH=/etc/docker
配置完成後,重新啟動docker,檢視啟動引數。
#重啟
service docker restart
#檢視啟動資訊
ps aux | grep docker
/usr/bin/dockerd-current --log-driver=journald --registry-mirror=https://abcdefg.mirror.aliyuncs.com
再次使用docker pull centos 下載centos映象,可以明顯看到速度有很大的提升。
3.4 檢視當前已存在的映象
docker images
#結果如下:
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest 3fa822599e10 8 days ago 203.5 MB
4. 執行centos映象輸出hello world
對於程式設計師來說,入門一種技術最關鍵的一步來了,使用docker run輸出hello world。
docker run centos echo "hello word"
hello word
可以看到,docker run有兩個引數,一個是映象名,一個是要在映象中執行的命令。當echo命令執行結束後,容器也會隨之停止,如果需要一直開啟容器的控制檯,可以輸入如下命令:
docker run -it centos /bin/bash
[root@1a3d1376e367 /]#
#可以看到,終端上已經由centos容器控制檯接管,此時直接echo輸出
[root@1a3d1376e367 /]# echo "hello word"
hello word
[root@1a3d1376e367 /]#
#exit退出容器
[root@1a3d1376e367 /]# exit
exit
[root@localhost opt]#
參考資料
1.在阿里雲上使用 Docker 並配置阿里雲映象加速器,結果遇到 daemon.json 導致 docker daemon 無法啟動的問題,https://pagespeed.v2ex.com/t/326229
2.docker: Error response from daemon: Container command could not be invoked..,http://blog.csdn.net/qq_29352959/article/details/54847794
3.Docker 映象加速器,https://yq.aliyun.com/articles/29941
4.Docker,https://baike.baidu.com/item/Docker/13344470?fr=aladdin
5.Docker 的應用場景在哪裡?,https://www.zhihu.com/question/22969309
6.Docker入門教程,http://www.docker.org.cn/book/docker/what-is-docker-16.html
相關文章
- docker學習3:Docker Hello WorldDocker
- Docker Hello WorldDocker
- 輸出hello world
- 在docker中寫個Hello WorldDocker
- python輸出hello worldPython
- [第七篇]——Docker Hello WorldDocker
- [python]pyramid 學習1 (hello world)Python
- 學習docker on windows (1): 為什麼要使用dockerDockerWindows
- docker學習1:CentOS Docker 安裝DockerCentOS
- React 學習之 Hello WorldReact
- docker學習4:Docker 映象使用Docker
- 入門輸出Hello World!——C語言C語言
- Hello DockerDocker
- Praat 學習日誌2--第一個指令碼程式,輸出“hello world!”指令碼
- 【JavaScript學習筆記】hello worldJavaScript筆記
- docker學習3:Docker容器使用Docker
- Docker第一彈:下載執行hello-world程式Docker
- Docker學習(1)安裝Docker
- 【C#學習筆記】Hello WorldC#筆記
- 第一個shell程式設計,輸出hello world!程式設計
- Docker Hello World容器執行報錯的解決辦法Docker
- C# Hello,World(1)
- 學習瞭解使用dockerDocker
- docker學習之使用映象Docker
- SpringMVC 學習筆記(一) Hello WorldSpringMVC筆記
- [Docker 系列]docker 學習 三Docker
- 【Docker 系列】docker 學習 三Docker
- Java實現第一個程式碼,輸出 hello worldJava
- [Docker 系列]docker 學習八,Docker 網路Docker
- 《快學 Go 語言》第 1 課 —— Hello WorldGo
- docker 學習Docker
- docker學習Docker
- docker入門1:使用docker映象Docker
- 【c語言】期望輸出str = hello world 的兩種方法C語言
- Python基礎1 Hello World!Python
- Docker 學習 一:Docker 是什麼Docker
- Docker 學習 一,Docker 是什麼Docker
- 【Docker】動手寫Dockerfile學習DockerDocker