測驗環境 :CentOS 7.1 64位
目的:展示docker的常規使用(安裝,常規操作,匯入匯出等)
其他:關于原理等請參考文章后面的延伸閱讀,本文不做深入探討,且方法不唯一
0x01 關于安裝docker
linux環境下直接運行即可:
sudo curl -fsSL https://get.docker.com/ | sh
其他安裝方法與請參考文章下面鏈接,在此不再贅述
0x02關于docker基礎操作
安裝完成后
chkconfig docker on # 加入開機啟動
service docker start # 啟動docker服務
組態檔 /etc/sysconfig/docker
基本資訊查看
docker version # 查看docker的版本號,包括客戶端、服務端、依賴的Go等
docker info # 查看系統(docker)層面資訊,包括管理的images, containers數等
docker pull centos 下載
docker images [ centos ] 查看
0x03關于docker獲取容器與容器的常規操作
搜索鏡像
docker search <image> # 在docker index中搜索image
下載鏡像
docker pull <image> # 從docker registry server 中下拉image
查看鏡像
docker images :# 列出
images docker images -a # 列出所有的images(包含歷史)
docker rmi <image ID> :# 洗掉一個或多個image
操作演示
① docker version

② docker images

0x04關于docker容器的使用
概念說明:啟動一個鏡像即為創建它的容器,容器為鏡像的實體
1.關于啟動容器:
啟動容器的方法有兩種:
● 互動型容器:前臺運行,可以通過控制臺與容器互動,如果創建該容器的終端被關閉,則容器就變為停止狀態,此外,在容器控制臺中輸入exit或者通過docker stop或docker kill也能終止容器,
● 后臺型容器:后臺運行,創建啟動之后就與終端無關了,需要用docker stop或docker kill來終止,
1.互動型容器的命令與演示:
如圖所示:注意填寫 IMAGE ID 啟動相應的鏡像
docker run -i -t 0584b3d2cf6d /bin/bash

2.關于容器的修改與保存:
做簡單的鏡像更改并打包:創建imagetest檔案夾

此時 復制視窗 進行commit 制作全新的鏡像:
① 列出當前正在運行的容器 注意查看 container id 會在后面的commit中使用

② commit 保存更改并生成鏡像
docker commit --author="303donatello" e91cf0291e79 centosimage:v1.0
// # commit保存對鏡像的更改
docker images #查看實驗結果

0x05關于docker容器的匯入匯出
匯出:
以匯出上面操作生成的centosimage為例:
1.啟動相應的鏡像生成容器:
docker run -i -t 0d123bf431d2 /bin/bash

2. docker ps -a #查看對應id

3.匯出鏡像:

匯入:
匯入鏡像到docker(以上步驟產生的檔案為例):
cat centosIE.tar | docker import - centosimport:v1.0

運行 驗證:
被修改的鏡像 匯入并生成容器成功
0x06 其他參考等
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 [email protected] -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](
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/2428.html
標籤:其他
