測試環境 :CentOS 7.1 64位
目的:展現docker的常規使用(安裝,常規操做,導入導出等)
其餘:關於原理等請參考文章後面的延伸閱讀,本文不作深刻探討,且方法不惟一linux
linux環境下直接運行便可:
sudo curl -fsSL https://get.docker.com/ | sh
nginx
其餘安裝方法與請參考文章下面連接,在此再也不贅述docker
安裝完成後
chkconfig docker on
# 加入開機啓動
service docker start # 啓動docker服務shell
配置文件 /etc/sysconfig/docker
centos
基本信息查看瀏覽器
docker version
# 查看docker的版本號,包括客戶端、服務端、依賴的Go等
docker info
# 查看系統(docker)層面信息,包括管理的images, containers數等
docker pull centos
下載
docker images [ centos ]
查看bash
docker search <image> # 在docker index中搜索image
app
docker pull <image> # 從docker registry server 中下拉image
ssh
docker images
:# 列出
images docker images -a
# 列出全部的images(包含歷史)
docker rmi <image ID>
:# 刪除一個或多個imagecurl
① docker version
② docker images
概念說明:啓動一個鏡像即爲建立它的容器,容器爲鏡像的實例
1.關於啓動容器:
啓動容器的方法有兩種:
● 交互型容器:前臺運行,能夠經過控制檯與容器交互。若是建立該容器的終端被關閉,則容器就變爲中止狀態。此外,在容器控制檯中輸入exit或者經過docker stop或docker kill也能終止容器。
● 後臺型容器:後臺運行,建立啓動以後就與終端無關了,須要用docker stop或docker kill來終止。
如圖所示:注意填寫 IMAGE ID 啓動相應的鏡像
docker run -i -t 0584b3d2cf6d /bin/bash
作簡單的鏡像更改並打包:建立imagetest文件夾
此時 複製窗口 進行commit 製做全新的鏡像:
docker commit --author="303donatello" e91cf0291e79 centosimage:v1.0
// # commit保存對鏡像的更改
docker images
#查看實驗結果
以導出上面操做生成的centosimage爲例:
docker run -i -t 0d123bf431d2 /bin/bash
docker ps -a
#查看對應id導入鏡像到docker(以上步驟產生的文件爲例):
cat centosIE.tar | docker import - centosimport:v1.0
運行 驗證:
被修改的鏡像 導入並生成容器成功
1,獲取Centos鏡像
docker pull centos:latest
2,查看鏡像運行狀況
docker images centos
3,在容器下運行 shell bash
docker run -i -t centos /bin/bash
4,中止容器
docker stop
5,查看容器日誌
docker logs -f
6,刪除全部容器
docker rm $(docker ps -a -q)
7,刪除鏡像
docker rmi <image id/name>
8,提交容器更改到鏡像倉庫中
docker run -i -t centos /bin/bash
useradd myuser
exit
docker ps -a |more
docker commitmyuser/centos
9,建立並運行容器中的 hello.sh
docker run -i -t myuser/centos /bin/bash
touch /home/myuser/hello.sh
echo "echo "Hello,World!"" > /home/myuser/hello.sh
chmod +x /home/myuser/hello.sh
exit
docker commitmyuser/centos
docker run -i -t myuser/centos /bin/sh /home/myuser/hello.sh
10,在容器中運行Nginx
在容器中安裝好Nginx,並提交到鏡像中
docker run -t -i -p 80:80 nginx/centos /bin/bash
啓動Nginx
/data/apps/nginx/sbin/nginx
(還不清楚如何在後臺運行!!!)
在瀏覽器訪問宿主機80端口。
11,映射容器端口
docker run -d -p 192.168.9.11:2201:22 nginx/centos /usr/sbin/sshd -D
用ssh root@192.168.9.11 -p 2201 鏈接容器,提示:
Connection to 192.168.1.205 closed.(此問題還未解決!!!)
可能會遇到的問題:
##在容器裏面修改用戶密碼的時候報錯:
/usr/share/cracklib/pw_dict.pwd: No such file or directory
PWOpen: No such file or directory
解決:yum -y reinstall cracklib-dicts
docker ps :列出當前全部正在運行的container
docker ps -l :列出最近一次啓動的container
docker ps -a :列出全部的container(包含歷史,即運行過的container)
docker ps -q :列出最近一次運行的container ID
docker start/stop/restart
docker start [container_id] #:再次運行某個container (包括歷史container)
#進入正在運行的docker容器
docker exec -it [container_id] /bin/bash
docker run -i -t -p <host_port:contain_port> #:映射 HOST 端口到容器,方便外部訪問容器內服務,host_port 能夠省略,省略表示把 container_port 映射到一個動態端口。
docker rm <container...> #:刪除一個或多個container
docker rm docker ps -a -q
#:刪除全部的container
docker ps -a -q | xargs docker rm #:同上, 刪除全部的container
docker run 和 docker create 參數基本同樣,run是建立容器並後臺啓動,create是隻建立容器。
docker run 至關於docker create 和 docker start
延伸閱讀與本文參考:
http://blog.csdn.net/opensure/article/details/46559071
[http://blog.csdn.net/dc_726/article/details/48206779?locationNum=1&fps=1](