Docker安裝
傳送門https://docs.docker.com/,中文翻譯http://widuu.com/docker
官網上介紹的很詳細,基本上各個系統的安裝方法都有
在自己的系統安裝成功後,可以用以下命令從官網下載一個虛擬系統(以ubuntu爲例)
$ docker pull ubuntu
docker鏡像非常小,ubuntu的鏡像大約只有50M
下載成功後,運行以下命令打開虛擬系統的終端
$ docker run -it ubuntu bash
Docker常用命令
查看系統中所有的容器
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
592376ff3eb8 hello-world "/hello" 25 seconds ago Exited (0) 24 seconds ago prickly_wozniak
從docker hub上取得鏡像
run命令找不到本地鏡像時會從docker hub尋找該鏡像並下載
$ docker run docker/whalesay cowsay boo
Unable to find image 'docker/whalesay:latest' locally
latest: Pulling from docker/whalesay
e190868d63f8: Downloading 7.013 MB/65.77 MB
e190868d63f8: Downloading 9.717 MB/65.77 MB
0b9bfabab7c1: Download complete
a3ed95caeb02: Verifying Checksum
00bf65475aba: Downloading 5.095 MB/37.71 MB
00bf65475aba: Downloading 7.847 MB/37.71 MB
8978f6879e2f: Download complete
8eed3712d2cf: Download complete
查看本機中的鏡像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker/whalesay latest fb434121fc77 3 hours ago 247 MB
hello-world latest 91c95931e552 5 weeks ago 910 B
images將列出所有在本地安裝的鏡像
刪除本機中的鏡像
$ docker rmi -f <REPOSITORY>
$ docker rmi -f <IAMGE ID>
可以根據倉庫名稱或者鏡像ID刪除
執行命令
$ docker run <REPOSITORY> <command>
比如使用docker/whalesay運行cowsay命令
$ docker run docker/whalesay cowsay boo-boo
_________
< boo-boo >
---------
\
\
\
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
保存docker鏡像到指定目錄
$ docker save <REPOSITORY> -o <outputfile>
Dockerfile
Dockerfile存在於docker鏡像中,用來描述使用軟件的環境和需要執行的命令
創建一個Dockerfile
1.新建一個文件夾
$ mkdir mydockerbuild
這個文件夾將作爲你創建鏡像的環境,即這個文件夾下的文件用於創建鏡像
$ cd mydockerbuild
進入文件夾
2.創建Dockerfile
$ touch Dockerfile
用各種文本編輯器都可以,這裏以vim爲例
$ vim Dockerfile
3.編輯Dockerfile
FROM docker/whalesay:latest
使用FROM 說明docker基於哪一個鏡像
RUN apt-get -y update && apt-get install -y fortunes
使用RUN 執行命令安裝軟件(fortunes這個軟件用於隨機打印一些名人名言)
CMD /usr/games/fortune -a | cowsay
當鏡像所需要的軟件都安裝完之後,使用CMD 命令執行
最終編輯完的Dockerfile中有如下內容:
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay
4.保存Dockerfile
通過Dockerfile創建鏡像
$ docker build -t <REPOSITORY> <PATH>
根據剛纔編寫的Dockerfile創建一個鏡像
$ docker build -t docker-whale .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM docker/whalesay:latest
...
Step 2 : RUN apt-get -y update && apt-get install -y fortunes
...
Step 3 : CMD /usr/games/fortune -a | cowsay
---> Running in a8e6faa88df3
---> 7d9495d03763
Removing intermediate container a8e6faa88df3
Successfully built 7d9495d03763
docker build 會使用當前目錄下的Dockerfile
運行鏡像
首先查看本機中有哪些鏡像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-whale latest 7d9495d03763 4 minutes ago 273.7 MB
docker/whalesay latest fb434121fc77 4 hours ago 247 MB
hello-world latest 91c95931e552 5 weeks ago 910 B```
運行Docker鏡像
$ docker run docker-whale
_________________________________________
/ "He was a modest, good-humored boy. It \
\ was Oxford that made him insufferable." /
-----------------------------------------
\
\
\
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
Docker Hub
Tag and push 鏡像
$ docker tag <IMAGE ID> YourHubID/repoName
$ docker images
$ docker login
$ docker push
現在去DockerHub上查看倉庫,可以看到剛剛push的操作
pull 新的鏡像
$ docker run <REPO_name_on_hub>
docker run找不到本地鏡像的話會從HUB上去下載