Docker 運行在 CentOS 7 上,要求系統爲64位、系統內核版本爲 3.10 以上。
Docker 運行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系統爲64位、系統內核版本爲 2.6.32-431 或者更高版本。php
yum install epel-release yum install -y docker-io
docker info // 查看信息 docker version //查看版本 service docker restart/start/stop/reload
docker build --rm=true . 構建鏡像 docker pull ${IMAGE} 安裝鏡像 docker images 顯示已經安裝的鏡像 docker images --no-trunc 顯示已經安裝鏡像的詳細內容 docker rmi ${IMAGE_ID} 刪除指定鏡像 docker save -o ${要保存的文件名} ${要保存的鏡像} //保存鏡像爲文件 docker load --input ${文件} 或者 docker load < ${文件} //載入鏡像 docker images|grep none|awk '{print $3 }'|xargs docker rmi //刪除沒有標籤的鏡像 docker rmi $(docker images | awk '/^<none>/ {print $3}')
docker run 運行容器 docker ps 顯示正在運行的容器 docker ps -a 顯示全部的容器 docker ps -l 顯示最近建立的容器 docker stop ${CID} 中止指定容器 docker start ${CID} 啓動指定容器 docker restart ${CID} 重啓指定容器 docker stop docker ps -q 中止全部正在運行的容器 docker rm ${CID} 刪除指定容器 docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${CID} 顯示指定容器的IP docker attach ${CID} 進入容器 docker exec -it ${CID} /bin/bash 進入容器打開一個shell,在容器中exit後,容器不會中止 docker commit ${CID} 新的鏡像名稱 //保存對容器的修改成新的鏡像 docker export ${CID或名稱} > ${導出文件名} //導出容器爲鏡像 docker load < ${導入文件名} //導入文件爲鏡像
1.docker run -p80:80 --name nginx -v /data:/usr/share/nginx/html -v /docker/nginx/conf.d:/etc/nginx/conf.d --privileged=true -d nginx -g "daemon off;"html
-d爲後臺運行
-p爲宿主機端口和容器端口的映射
-v爲宿主機目錄和容器目錄的映射
--privileged 爲容器內的root擁有真正的root權限
--name 容器名稱,自定義
nginx 爲鏡像名稱mysql
2.中止容器
docker stop ${CID/name}nginx
3.啓動容器
docker stop ${CID/name}sql
3.重啓容器
docker restart ${CID/name}docker
1.shell
docker pull fauria/vsftpd
2.啓動容器apache
docker run -d -v /data:/home/vsftpd \ -p 20:20 -p 21:21 -p 21100-21110:21100-21110 \ -e FTP_USER=USERNAME -e FTP_PASS=PASSWORD \ -e PASV_ADDRESS=127.0.0.1 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \ --name vsftpd --restart=always fauria/vsftpd
1.拉取centos官方6.9版本
docker pull centos:6.9centos
2.啓動centosbash
docker run --net=host -d -name centos6.9 centos:6.9
--net=host是讓容器使用宿主機的網絡環境
3.安裝apache和php5.6,此處略去;
在容器內修改httpd.conf,增長
Include vhosts/*.conf
在/etc/httpd/下新建vhosts文件夾
4.將容器保存爲新的鏡像
docker commit centos6.9 centos6-apache2-php5.6
5.以新鏡像來啓動容器
docker run -v /www/site1:/var/www/html -v /httpd/vhosts:/etc/httpd/vhosts -p 80:80 --name apache -d -i -t centos6-apache2-php5.6 /bin/bash
注:
-v /httpd/vhosts:/etc/httpd/vhosts 是將apche的配置文件放到宿主機的/httpd/vhosts
在/httpd/vhosts咱們新建一個site.conf
<VirtualHost *:80> DocumentRoot /var/www/html/public </VirtualHost>
1.拉取mysql5.6.35
docker pull mysql:5.6.35
2.啓動鏡像
docker run --name mysql5.6 -p 3306:3306 -v /mysql/datadir:/var/lib/mysql -v /mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=密碼 -d mysql:5.6.35
-v /mysql/datadir:/var/lib/mysql 將數據文件放入宿主機目錄/mysql/datadir下
-v /mysql/conf.d:/etc/mysql/conf.d 將配置文件放入宿主機目錄/mysql/conf.d下
在宿主機上創建文件/mysql/conf.d/my.cnf
[mysqld] slow_query_log = 1
1.vsftpd在過一個階段後狀態變爲dead,沒法刪除,只能強制刪除
docker rm -f $(docker ps -a -q -f status=dead)
2.製做的新鏡像centos6-apache2-php5.6,在每次運行容器後,還須要進入容器去啓動apache,咱們在容器中新建一個腳本文件/init/httpd.sh
#! /bin/bash /etc/init.d/httpd start /bin/bash
賦予執行權限
chmod +x /init/httpd.sh
保存容器爲新鏡像
docker commit centos centos6-apache2-php5.6
運行一個容器
docker run -p 8010:80 -itd -v /www/phpmyadmin:/var/www/html --name phpmyadmin2 centos6-apache2-php5.6 /init/httpd.sh
/init/httpd.sh 這是鏡像中的腳本文件