首先,不要把docker想的那么高大,它不就是先做個鏡像,然后通過docker像虛擬機一樣跑起來嘛...docker其實在真實業務場景中還是非常有局限性的。Dockerfile腳本也沒那么好寫,有些應用也沒有那么好安裝。
廢話不多說,教你半天搞定docker!
安裝依賴和docker
安裝docker,不建議直接使用Docker官方的yum install docker
wget http://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-selinux-1.12.6-1.el7.centos.noarch.rpm
wget http://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-1.12.6-1.el7.centos.x86_64.rpm
wget http://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-debuginfo-1.12.6-1.el7.centos.x86_64.rpm
yum localinstall -y docker-engine-selinux-1.12.6-1.el7.centos.noarch.rpm docker-engine-1.12.6-1.el7.centos.x86_64.rpm docker-engine-debuginfo-1.12.6-1.el7.centos.x86_64.rpm
開機啟動項
systemctl enable docker
啟動docker
service docker start
搜索公開容器鏡像
docker search centos6.6
支持模糊搜索,但不要想着公開的容器有多好,適合公司業務的還是需要自己搭建。
NAME DESCRIPTION STARS OFFICIAL AUTOMATED liangtong/centos6.6-httpd 2 incu6us/centos6.6-with-nginx Wav server for FreeCall 0 [OK] eliezio/centos6.6-devtoolset2-gtest Docker image based on Centos 6.6 suitable ... 0 [OK] chrisgeorge/centos6.6-py2.6 CentOS 6.6 with Python 2.6 0 [OK] leonion/centos6.6 centos6.6 0 heilee/centos6.6 0 karthi12345/centos6.6 0 kalramain/centos6.6-mysql55 mysql5.5 installed on centos6.6 0
加載鏡像容器
docker pull chrisgeorge/centos6.6-py2.6<NAME>
試運行
docker run -i -t chrisgeorge/centos6.6-py2.6 /bin/bash
docker run -it
這樣就交互登錄到你預先設計好的容器里面去了
安裝應用
yum install openssh-server
#需要修改/etc/ssh/sshd_config文件中內容
PermitRootLogin yes
UsePAM no
ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key
mkdir /var/run/sshd
passwd 登錄密碼
/etc/init.d/sshd start
更新鏡像
docker commit ID <name>
刪除鏡像
# docker rmi <neme>
docker rmi -f
啟動
docker run -d -p 22 -p 8022:8000 chrisgeorge/centos6.6-py2.6 /usr/sbin/sshd -D
--restart=always 自動重啟(始終)
將容器8000端口映射到docker服務器8022端口,將容器22端口隨機映射端口
[root@SERVER docker]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0c65edbc3f3d wy "/usr/sbin/sshd -D" 22 minutes ago Up 22 minutes 0.0.0.0:32769->22/tcp, 0.0.0.0:8022->8000/tcp mad_poitras
備份鏡像
docker save chrisgeorge/centos6.6-py2.6 >/root/docker-pmd.tar
還原鏡像
docker load < /root/docker-pmd.tar
想跑起來鏡像,就必須每台機子裝有docker。
Dockerfile
腳本:/home/docker/Dockerfile
FROM chrisgeorge/centos6.6-py2.6 #繼承的父容器 MAINTAINER wonter #作者 RUN yum install nginx #在新的容器里安裝nginx RUN echo "root:root" | chpasswd #設置密碼 EXPOSE 22 #設置端口 CMD /etc/init.d/nginx start #啟動服務
# docker build -t wonter .
#刪除docker歷史容器
docker ps -a -q | xargs docker rm
-v 掛載沒有權限
su -c "setenforce 0"