十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
docker 版本
docker version
docker 信息
docker info
拉取鏡像
docker pull ubuntu
刪除鏡像
docker rmi ubuntu
查看全部鏡像
docker images
查看全部容器
docker ps -a
運行容器
docker run -p 80:80 --name ubuntu14.04 -i -t -v /home/dock:/Users/tongjh/ubuntu ubuntu /bin/bash -v 將宿主機上的目錄掛載到鏡像里 -p 將容器的80端口映射到主機的80端口 -i 以交互模式運行容器,通常與-t同時使用 -t 為容器重新分配一個偽輸入終端,通常與-i同時使用 --name 為容器指定一個名稱 -d 后臺運行容器,并返回容器id -m 設(shè)置容器使用內(nèi)存值 -h 指定容器的hostname
停止運行容器
docker stop ubuntu14.04
啟動停止的容器
docker start ubuntu14.04
刪除容器
docker rm ubuntu14.04
自動重啟容器
docker run --restart=always --name ubuntu14.04 -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 1;done" --restart=always 無論容器退出代碼是什么,docker都會重啟該容器 --restart=on-failure:5 如果退出代碼非0是,才自動重啟。5為自動重啟次數(shù),最多重啟5次
數(shù)據(jù)卷 -v
docker run -it -v /dbdata:/dbdata --name dbdata ubuntu
數(shù)據(jù)卷容器 --volumes-from
docker run -it --volumes-from dbdata --name db1 ubuntu
進入容器
docker exec -it mymysql bash
容器日志
docker logs ubuntu
查看容器進程
docker top ubuntu
導出容器
docker export 容器id > ubuntu.tar
導入容器
cat ubuntu.tar | docker import - test/ubuntu:v1.0
登陸docker倉庫
docker login
從已有的容器創(chuàng)建一個鏡像
docker commit -m="ubuntu rap 配置" --author="tongjh" fafb59b5fa0d tongjh/ubunturap
向docker倉庫推送一個創(chuàng)建好的鏡像
docker push tongjh/ubunturap
###下面一個簡單練手的列子,搭建一個nginx+php+mysql的容器###
拉取php鏡像
docker pull php:5.6-fpm
運行php容器
docker run --name dream.php -d -v ~/docker/nginx/www:/var/www/html:ro php:5.6-fpm
說明:
dream.php 是容器的名字 ~/docker/nginx/www 是本地 php 文件的存儲目錄,/var/www/html 是容器內(nèi) php 文件的存儲目錄,ro 表示只讀。拉取一個nginx鏡像
docker pull nginx
編輯nginx配置文件
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ .php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; include fastcgi_params; } }
說明:
php:9000 表示 php-fpm 服務的訪問路徑,下文還會提及 /var/www/html 是dream.php 容器中php腳本的存儲路徑,經(jīng)docker映射,變成本地路徑 ~/docker/nginx/www運行一個nginx容器
docker run --name dream.nginx -p 80:80 -d -v ~/docker/nginx/www:/usr/share/nginx/html:ro -v ~/docker/nginx/conf:/etc/nginx/conf.d:ro --link dream.php:php nginx
說明:
-p 80:80 用于添加端口映射,把 dream.nginx 容器中的 80 端口暴露出來。 ~/docker/nginx/www 是本地 html 文件的存儲目錄,/usr/share/nginx/html 是容器內(nèi) html 文件的存儲目錄。 ~/docker/nginx/conf 是本地 nginx 配置文件的存儲目錄,/etc/nginx/conf.d 是容器內(nèi) nginx 配置文件的存儲目錄。 --link dream.php:php 把 dream.php 的網(wǎng)絡并入 dream.nginx,并通過修改 dream.nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,讓 nginx 通過 php:9000 訪問 php-fpm。拉取一個mysql鏡像
docker pull mysql
運行一個mysql容器
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6 另一個例子
使用docker倉庫中的鏡像創(chuàng)建容器并運行
創(chuàng)建并啟動一個mysql容器
docker run --restart=always -v /Users/junhuatong/docker/mysql-test:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql-test -d mysql創(chuàng)建并啟動web服務器容器(nginx+php7)
docker run -d -p 8801:80 --restart=always -v /Users/junhuatong/docker/html/:/var/www/html/ --link mysql-test:db saaremaa/webserver測試,打開網(wǎng)站根目錄(/Users/junhuatong/docker/html/),編輯index.php
瀏覽器打開http://127.0.0.1:8801/index.php