Docker入門指南
地址:docker入門指南
更換國內鏡像源
docker store地址默認是在國外,下載速度很慢,自行更換國內docker加速地址。
名詞解釋
image
: 鏡像containers
: 容器docker-machine
: docker虛擬主機docker store
: docker存儲雲
術語
Image 和 Container
Image可以理解為一個系統鏡像,Container是Image在運行時的一個狀態。
如果拿虛擬機作一個比喻的話,Image就是關機狀態下的磁盤文件,Container就是虛擬機運行時的磁盤文件,包括內存數據。
Image 是系統一般來源是官方資源,或者比較穩定成熟的資源
docker daemon
主機上運行的後臺服務管理構建,運行和分發Docker容器
docker client
命令行工具,允許用戶與Docker守護進程交互
docker store
docker images的註冊地址,可以在其中找到受信任的企業級容器,插件和Docker版本。相當於docker的倉庫。
運行docker HelloWorld
docker run hello-world
拉取docker cloud項目
docker pull alpine
docker run hello-world 背後也做了 docker pull 的動作去docker服務器上面下載。
提示:
如果本地不存在這個image的話,如果本地已經存在,就不去docker store上面下載了。
查看所有的docker鏡像
docker images
執行 docker 的命令
docker run alpine ls -l
進入一個docker
docker run -it alpine /bin/sh
exit退出
查看當前運行的 docker
docker ps
查看全部 docker
docker ps -a
獲取 docker run 參數列表
docker run --help
查看一個docker的信息
docker inspect alpine
暫停 docker 容器
docker stop xxx
xxx 為 docker容器的名字 或CONTAINER ID
刪除一個docker容器
docker rm xxx
-f
運行中的docker容器,需要先暫停再刪除,或者直接加此參數
docker rm -f xxx
基本的docker web項目
從docker store獲取依賴的docker image
// docker pull dockersamples/static-site
docker run -d dockersamples/static-site
-d
表示後臺運行,不加-d,就像Tomcat一樣,無法再在當前命令窗口操作了,默認是flase。
detached 模式運行docker
docker run --name static-site -e AUTHOR="Your Name" -d -P dockersamples/static-site
-d
獨立於當前命令窗口運行
-P
將所有暴露的docker容器端口,映射到真實主機上面的隨機端口
-p
將當前主機上面的指定端口,映射到docker容器的一個端口:-p 8888:80 將當前主機的8888端口映射到docker容器的80端口。
--name
指定容器的名稱
-e
可以傳遞環境變量給docker容器
AUTHOR
環境變量的名稱和值,可以自己任意指定
查看docker容器映射的端口
docker port [容器名 --name 指定的值]
$ docker port static-site
443/tcp -> 0.0.0.0:32772
80/tcp -> 0.0.0.0:32773
使用localhost:[docer80的本地映射端口]訪問:
http://localhost:32769/
創建docker主機
列出所有的docker主機
docker-machine ls
獲取docker主機的IP地址
docker-machine ip default
可能出現錯誤:
Host does not exist: "default"
解決:
docker-machine create default
如果繼續報錯,Mac需要安裝:VirtualBox
https://www.docker.com/products/docker-toolbox
Mac
docker-machine create -d virtualbox default
Windows
需要在添加刪除程序裏面開啟hyperv,只有專業版的Windows才有,家庭版不存在此功能。
docker-machine create --driver hyperv vm
https://docs.docker.com/machine/drivers/hyper-v/
安裝完以後重啟docker
Linux
sudo service docker restart
Mac 和 Windows 圖形化界面手動重啟
然後繼續創建:
docker-machine create default
名字可以隨便起,不一定要叫default
不報錯任何錯誤,如:
Running pre-create checks…
Error with pre-create check: "exit status 126"
說明安裝成功:
Running pre-create checks…
Creating machine…
(default) Copying
(default) Creating VirtualBox VM…
(default) Creating SSH key…
(default) Starting the VM…
(default) Check network to re-create if needed…
(default) Found a new host-only adapter: "vboxnet0"
(default) Waiting for an IP…
Waiting for machine to be running, this may take a few minutes…
Detecting operating system of created instance…
Waiting for SSH to be available…
Detecting the provisioner…
Provisioning with boot2docker…
Copying certs to the local machine directory…
Copying certs to the remote machine…
Setting Docker configuration on the remote daemon…
Checking connection to Docker…
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env default
然後再次查看docker主機:
docker-machine ls
看到NAME為default的主機,說明成功。
再次輸入:docker-machine ip default
得到一個主機的IP
192.168.99.100
進入docker主機
docker-machine ssh default
看到命令行前綴改變,表示成功
docker@default:~$
從docker store下載並運行
dockersamples/static-site:
docker run --name static-site -e AUTHOR="Your Name" -d -P dockersamples/static-site
然後查看docker主機裏面容器的映射端口,使用docker主機的ip + 主機內容器的端口就可以訪問到主機內的容器服務:
查看容器映射端口
docker port static-site
443/tcp -> 0.0.0.0:32768
80/tcp -> 0.0.0.0:32769
http://192.168.99.100:32769/
Docker入門指南