Docker包含三個概念:
(1)遠(yuǎn)程倉庫即遠(yuǎn)程鏡像庫所有鏡像的聚集地(不可進(jìn)入操作)。
(2)本地鏡像即從遠(yuǎn)程倉庫拉取過來的鏡像
(3)運(yùn)行起來的本地鏡像叫做容器(分層的可操作)
Docker使用:
1.首先通過第三方鏡像庫(c.163.com)拉取相應(yīng)的信息比如centos,ubuntu,tomcat等作為基礎(chǔ)鏡像。
Docker pull xxxx
2.運(yùn)行下載好的鏡像。
Docker run -dt -p 宿主機(jī)端口:鏡像端口 --name起一個名字 鏡像id/鏡像名字 bash
-d 后臺運(yùn)行
-t 生成一個偽終端
-p 指定端口
--name 為運(yùn)行的容器起一個名字
3.進(jìn)入容器有兩種方法
(1)docker exec -it容器名字/容器id bash(ctrl+d退出時不會停止該運(yùn)行的容器)
(2)Docker attach 容器名字/容器id (ctrl+d退出時會停止該運(yùn)行的容器)
4.開始下載編譯環(huán)境所需的相應(yīng)的工具和所需的依賴包
(1)yum安裝wget以及編譯的工具 yum install -y wget gcc gcc-c++ make openssl-devel
(2)更新國內(nèi)yum源
Wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/xxx/ Xxx表示你要選擇的yum源 -O 下載并以不同的文件名保存 CentOS-Base.repo 表示命名的yum源
(3)下載各個版本的nginx版本
Wget http://nginx.org/download/xxx Xxx表示你要選擇的nginx的版本
(4)下載pcre
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/xxx
Xxx表示選擇的版本
(5)更新yum確保最新的
Yum update
(6)下載php7
http://php.net/downloads.php
選擇版本,選擇國界
(7)把以上下載的東西全部粘貼到/usr/local/src 并且全部解壓
(8)編譯nginx
(1)創(chuàng)建nginx用戶
groupadd -r nginx useradd -r -g nginx nginx
(2)編譯安裝nginx
cd xxx 切換到您的nginx目錄 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.37 ./configure參數(shù)說明: --prefix=指定文件的安裝目錄 --user=指定用戶 --group指定用戶組 --with-使用已有的軟件包和庫文件 Make && make install 出現(xiàn)問題自行百度 echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf #在nginx的配置文件里加上這一行很關(guān)鍵,這樣nginx可以在docker啟動的時候在后臺運(yùn)行!
(9)編譯php
(1)準(zhǔn)備php的依賴包
yum install -y bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel
(2)進(jìn)入php文件目錄
(3)開始編譯php
./configure --prefix=/usr/local/php --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr/local/libxml --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr/local/libpng --enable-gd-native-ttf --with-openssl --with-fpm-user=www --with-fpm-group=www --with-libdir=lib64 --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --enable-xml --enable-shmop --enable-session --enable-ctype --with-iconv-dir --with-iconv
注:出現(xiàn)問題自行百度。
(4)make && make install
(5)準(zhǔn)備php配置文件
cp php.ini-production /etc/php.ini cd /usr/local/php/etc cp php-fpm.conf.default php-fpm.conf
(6)修改配置文件
;daemonize = yes的注釋去掉,并把yes改為no
(7)安裝yar拓展
(1)安裝二進(jìn)制打包協(xié)議msgpack
find / -name phpize 查找phpize是否存在 yum install php-devel pecl install msgpack
注:出現(xiàn)問題自行百度
(2)下載yar wget http://pecl.php.net/get/xxx
Xxx表示版本 確定好與php版本對照這個很重要。
(3)解壓編譯tar -zxvf yar-2.0.0.tgz
(4)cd cd yar-2.0.0
(5)/usr/bin/phpize
(6)./configure --with-php-config=/usr/bin/php-config7.0*
(7)make && make install
(8)如果出現(xiàn)模塊未安裝可 php --ini 查看ini路徑相對調(diào)整
(9)docker commit -m "描述" -a "作者" 容器id 倉庫信息mydocker/nginx:版本信息v1
(10)docker save xxx > /home/save.tar
(11)Docker load xxx