『壹』 linux怎麼啟動docker
2.1 在測試機啟動容器,安裝ssh
docker run -i -t ubuntu /bin/bash #此方式運行的容器,退出後容器就會關閉。
apt-get install openssh-server #安裝ssh
#需要修改/etc/sshd/sshd_config文件中內容
PermitRootLogin yes
UsePAM no
2.2 啟動ssh,容器以後台方式運行
docker run -d -p 50001:22 <容器id> /usr/sbin/sshd-D
#容器id可通過 docker ps-a查看,最上面的為最新的。
2.3 通過ssh連接到容器安裝軟體
ssh [email protected] 50001
#連上後想裝什麼就裝什麼,可使用exit退出容器,但後台還會運行。
2.4 服務安裝完成後,停止容器。
docker stop <容器id> #停止運行的容器
2.5 把容器提交生成最新的鏡像
docker commit <容器id> debian02 #把這個容器提交生成新的debian02鏡像(該鏡像是原始鏡像與容器的整合)
2.6 打包鏡像
docker save debian02 >/root/debian02.tar #debian02鏡像打包
2.7 在另外的機器上導入鏡像
docker load < debian02.tar #導入鏡像
docker images #查看存在的鏡像
2.8 啟動容器
docker run -h="redis-test" --name redis-test -d -p 51000:22 -p51001:3306 -p 51003:6379 -p 51004:6381 -p 51005:80 -p 51006:8000 -p 51007:8888 debian02 /etc/rc.local
#此處是我測試機器啟動命令,指定主機名與埠映射。
#啟動後,後面又裝了程序,開機自啟動命令可放在/etc/rc.local文件中。
docker容器遷移簡單方便,可以任意的拷貝部署,以後再也不怕新部署環境了,一堆依賴裝的想死有木有。
3、關於docker容器的埠映射
由於docker容器的IP地址每次啟動都會變,所以不適用於手動添加埠映射(難道每次重啟都來查看容器的IP么?),所以需要每次啟動容器時由docker程序自動添加NAT規則,前期盡可能的把需要映射的埠在創建容器時配置好,如下:docker run -h="activemq" --name activemq -d -p 51000:22 -p 51001:3306-p 51003:6379 -p 51004:6381 -p 51005:80-p 51006:8000 -p 51007:8888 debian/base/etc/rc.local
#此處我把mysql,redis,nginx,ssh都進行了映射。
後續對於docker容器的管理,記住容器的名稱,如上述名稱是activemq,則使用docker stop,start來控制容器進程。docker stop activemq
docker start activemq
當然,也可以不讓docker每次啟動容器修改容器的IP地址,參考如下:
docker網路配置:http://www.open-open.com/lib/view/open1404896485747.html
4、關於docker容器的多程序開機自動運行
docker容器每次啟動時,開機自啟動的命令都要在啟動容器前指定。如 docker run -I -t debian /bin/bash命令,只會運行/bin/bash程序,其它的程序都不會運行,對於要跑多個程序的容器特別糾結。
多程序開機自動運行方法:
可把前面所說的啟動命令換成dockerrun -I -t debian /etc/rc.local,在容器中把所有需要開機自的啟動命令放在/etc/rc.local中,就可以達到多程序開機自啟動了。
後台運行則是:docker run -d -p 50001:22 debian /etc/rc.local。注意:run命令是創建一個新的容器,如果要啟動一個曾經運行過的容器,則用命令docker ps -a中找對應的容器ID,然後使用docker start <容器ID>即可。