關於docker--詳解安裝,常規操做,導入導出等(2017-3-29)

測試環境 :CentOS 7.1 64位
目的:展現docker的常規使用(安裝,常規操做,導入導出等)
其餘:關於原理等請參考文章後面的延伸閱讀,本文不作深刻探討,且方法不惟一linux

0x01 關於安裝docker

linux環境下直接運行便可:
sudo curl -fsSL https://get.docker.com/ | shnginx

其餘安裝方法與請參考文章下面連接,在此再也不贅述docker

0x02關於docker基礎操做

安裝完成後
chkconfig docker on # 加入開機啓動 
service docker start # 啓動docker服務shell

配置文件 /etc/sysconfig/dockercentos


基本信息查看瀏覽器

 docker version # 查看docker的版本號,包括客戶端、服務端、依賴的Go等
  docker info # 查看系統(docker)層面信息,包括管理的images, containers數等 
docker pull centos 下載 
docker images [ centos ] 查看bash

0x03關於docker獲取容器與容器的常規操做

搜索鏡像

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--詳解安裝,常規操做,導入導出等 - 303Donatello - 303Donatello

docker images

關於docker--詳解安裝,常規操做,導入導出等 - 303Donatello - 303Donatello

0x04關於docker容器的使用

概念說明:啓動一個鏡像即爲建立它的容器,容器爲鏡像的實例
1.關於啓動容器:
啓動容器的方法有兩種:
● 交互型容器:前臺運行,能夠經過控制檯與容器交互。若是建立該容器的終端被關閉,則容器就變爲中止狀態。此外,在容器控制檯中輸入exit或者經過docker stop或docker kill也能終止容器。
● 後臺型容器:後臺運行,建立啓動以後就與終端無關了,須要用docker stop或docker kill來終止。

1.交互型容器的命令與演示:

如圖所示:注意填寫 IMAGE ID 啓動相應的鏡像

docker run -i -t 0584b3d2cf6d /bin/bash
關於docker--詳解安裝,常規操做,導入導出等 - 303Donatello - 303Donatello

2.關於容器的修改與保存:

作簡單的鏡像更改並打包:建立imagetest文件夾
關於docker--詳解安裝,常規操做,導入導出等 - 303Donatello - 303Donatello

此時 複製窗口 進行commit 製做全新的鏡像:

① 列出當前正在運行的容器 注意查看 container id 會在後面的commit中使用

關於docker--詳解安裝,常規操做,導入導出等 - 303Donatello - 303Donatello

② commit 保存更改並生成鏡像

docker commit --author="303donatello" e91cf0291e79 centosimage:v1.0
// # commit保存對鏡像的更改
docker images #查看實驗結果
關於docker--詳解安裝,常規操做,導入導出等 - 303Donatello - 303Donatello

0x05關於docker容器的導入導出

導出:

以導出上面操做生成的centosimage爲例:

1.啓動相應的鏡像生成容器:

docker run -i -t 0d123bf431d2 /bin/bash
關於docker--詳解安裝,常規操做,導入導出等 - 303Donatello - 303Donatello

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

關於docker--詳解安裝,常規操做,導入導出等 - 303Donatello - 303Donatello

3.導出鏡像:

關於docker--詳解安裝,常規操做,導入導出等 - 303Donatello - 303Donatello

導入:

導入鏡像到docker(以上步驟產生的文件爲例):
cat centosIE.tar | docker import - centosimport:v1.0
關於docker--詳解安裝,常規操做,導入導出等 - 303Donatello - 303Donatello

運行 驗證:
被修改的鏡像 導入並生成容器成功

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 commit myuser/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 commit myuser/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 #:開啓/中止/重啓container 
 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](

相關文章
相關標籤/搜索