1. 程式人生 > >docker的搭建和簡單應用

docker的搭建和簡單應用

  1 dockerserver端安裝
  2 先下載docker的yum源
  3 wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  4 然後安裝
  5 yum -y install docker-ce
  6 在/etc/docker/裡修改daemon.json檔案,修改成如下
  7 {
  8 "registry-mirrors":[ "https://registry.docker-cn.com" ]
  9 }
 10 重啟守護程序
 11 systemctl daemon-reload
 12 啟動docker命令
13 systemctl start docker 14 檢視版本號的命令 15 docker --version 16 檢視公網上的映象 17 docker search centos:7 (名字,冒號後邊的是版本不寫預設是latest版本) 18 檢視公網映象也可以加詳細的引數,比如100星級以上 19 docker search centos -f stars=100 20 在公網上下載映象,pull 21 docker pull centos:7 (名字,冒號後邊是版本號不寫預設是latest) 22 檢視映象命令 23 docker images 24 想要自己建立映象需要偶先建立檔案目錄
25 mkdir -p /root/dockerfile/library/centos/7 26 cd /root/dockerfile/library/centos/7/ 27 在目錄裡建立容器裡的簡單執行指令碼 28 vim docker.sh 29 #!/bin/bash 30 while true 31 do 32 echo "蘇哥" 33 sleep 5 34 done 35 然後寫映象檔案Dockerfile名字一定不能錯 36 FROM centos #是基於那個映象建立,沒有的話會去公網下載 37 LABEL MAINTATNER="SU"#標籤,建立者名字 38 RUN ln -sfv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime#建立之前修改時區
39 COPY docker.sh /home/test/#將指令碼複製到映象裡的test下,路徑是相對Dockerfile的檔案 40 RUN chmod +x /home/test/docker.sh#給映象裡邊的指令碼加執行許可權 41 CMD ["/home/test/docker.sh"]#執行指令碼,啟動容器時,必須要有一個程序在執行,要不啟不 42 43 建立映象 44 docker build -t su/centos7:1 . (注意需要在有Dockerfile的目錄裡輸入命令) 45 啟動容器 46 docker run -dit su/centos7:1 /bin/bash(可以加/bin/bash,也可以不加) 47 docker run -dit --name sunan su/centos7:1 (啟動的時候給容器器個名字叫sunan) 48 -d :放在後天執行 49 -i:可以互動輸入命令 50 -t:啟動一個偽終端 51 -c:指定幾個cpu來執行記憶體 52 -m:指定幾個內容。 53 隱形引數--name 給容器起名。 54 看容器的日誌 55 docker logs sunan(可以是名字,也可以是id) 56 看啟動的容器 57 docker ps -a(加a是看所有) 58 開始執行容器 59 docker start xxx(可以是容器的名字,也可以是容器的id) 60 重啟一個容器 61 docker restart xxx(可以是容器的名字,也可以是id) 62 停止執行容器 63 時時的輸出容器的資源使用狀況 64 docker stats xxx --no-stream(容器的名字或者id,類似top命令) 65 加引數--no-stream是隻輸出一次就可 66 docker stop xxx(可以是容器的名字,也可以是容器的id) 67 切進容器的命令 68 docker attach xxx(可以是容器的名字,也可以是容器的id) 69 exit是退出容器 70 殺容器 71 docker kill xxx (容器的名字,或者容器的id,直接刪掉容器的程序,使其處於停止。) 72 刪除容器 73 docker rm xxx(容器的名字,或者容器的id,必須先停止容器以後才能刪,) 74 -f 強刪 75 刪除映象 76 docker rmi xxx (容器的名字,或者容器的id) 77 -f強刪 78 將一個更改過的容器封裝成一給性的映象(先進去一個容器,搭建個專案,退出從封裝) 79 docker commit xxx(原來的容器,更改過的) xxx/xxx(新的映象叫什麼名字) 80 不進容器,直接釋出命令 81 docker exec (-dit) xxx(容器的名字,或者id) ls /(想要執行的命令) 82 引數 83 -dit直接可以切進去 84 容器和屬主機直接的複製檔案命令 85 docker cp /tmp/dockerfile(檔案的路徑)xxx:/tmp(容器的名字或者ip,冒號後面是地址)( 86 也是吧什麼複製到哪裡的格式) 87 建立一個新的容器, 88 docker create -it xxx(映象的名字或者id)(用法跟run一樣,只是create不啟動容器,想要 89 啟動還需要用start命令啟動下) 90 檢視容器程序與源映象做對比看哪裡不一樣 91 docker diff xxx(容器的名字或者id) 92 返回的結果C是多了什麼 93 A是少了什麼 94 監控容器的變化 95 docker events 96 匯出容器 97 docker export xxx(容器的名字或者id) > yyyy.tar(匯出來的容器叫什麼名字) 98 將匯出的容器建立為一個映象 99 docker import yyy.tar(匯出來的容器的名字)zzz(匯入要建立的映象叫什麼名字) 100 檢視映象的歷史記錄 101 docker history xxx (映象的名字或者id) 102 檢視映象的詳細資訊 103 docker inspect xxx(映象的民族或者id) 104 匯出映象 105 docker save xxx(要匯出的映象的名字或者id) > yyy.tar(匯出來叫什麼明教) 106 匯入映象 107 docker load < yyy.tar (需要匯入的映象的名字。有相同的映象是不讓匯入的) 108 暫停容器的命令(unpause是回覆暫停的容器) 109 docker pause xxx(容器的名字或者id) 110 檢視容器的埠對映協議 111 docker port xxx(容器的名字或者id) 112 想要在啟動的時候新增容器的對映埠 113 docker run -dit --name xx -p 80:80 yy(xx容器起名叫,80:80將屬主機的80埠對映到容器 114 裡的80埠,yy要啟動的映象的名字) 115 給容器改名 116 docker rename xxx yyy(xxx原來的名字,yyy想要叫的名字) 117 用於克隆映象的 118 docker tag xxx xxx1(將什麼,克隆成什麼,可以當場軟連線,要刪一起刪) 119 調整啟動以後的容器的cpu和記憶體 120 docker update -c 2 xxx(需要調整的) 121 -c調整cpu 122 -m調整記憶體。需要多少直接在後邊寫就可以了 123 監控容器的的退出狀態 124 docker wait xxx(容器的名字或者id) 125 建立一個自定義網路 126 docker network creat lnmp (建立個自定義網路叫lnmp) 127 檢視docker網路 128 docker network ls檢視所有網橋網路 129 brctl show同上 130 login用於登陸docker hub官方公有的倉庫 131 logout用於登出官方公有的倉庫 132 push將本地的映象提交到docker hub 133 掛載容器卷 134 分為兩種,volume卷放的地方是指定的,沒有回自動建立,不特別指定都是volume型別 135 命令docker volume ls 檢視系統卷(用volume掛載不會頂掉原來有的東西,會直接出現到卷裡) 136 卷放的地方/var/lib/docker/volumes/ 137 docker volume create xxx (建立一個卷,會固定放到指定的地方) 138 檢視自volume的卷的命令 139 docker volume ls 140 想要掛載卷需要在啟動的時候掛 141 docker run -dit --name nginx-test -p 80:80 --mount src=xxx,dst=/usr/share/nginx/html 142 nginx(src後邊直接寫卷的名字,系統會到指定的地方去找,dst寫掛到哪裡,事例寫的是掛到 143 Nginx的網頁目錄下) 144 第二種自己建立的目錄掛載 145 mkdir -p /www/html 146 docker run -dit --name nginx-test2 -p 81:80 --mount 147 type=bind,src=/www/html/,dst=/usr/shar/nginx/html (用自己建立的掛在會頂掉原理有的) 148 用docker搭建一個lnmp的環境 149 首先要自己建立一個叫lnmp的網路 150 docker network create lnmp 151 然後啟動mysql的映象 152 [[email protected] ~]# docker run -dit --name lnmp_mysql --network lnmp -p 3306:3306 153 --mount src=mysql-vol,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123123 mysql:5.6 -- 154 character-set-server=utf8 155 想容器裡建立一個庫 156 [[email protected] ~]# docker exec lnmp_mysql sh -c 'exec mysql -uroot - 157 p"$MYSQL_ROOT_PASSWORD" -e "create database wp"' 158 提示一下建立成功 159 mysql: [Warning] Using a password on the command line interface can be insecure. 160 然後開始部署php和Nginx 161 先建立一個網頁目錄 162 mkdir -p /app/wwwroot 163 然後啟動php和ngin的映象(前題需要下載好richarvey/nginx-php-fpm這個映象) 164 [[email protected] ~]# docker run -dit --name lnmp_web --net lnmp -p 88:80 --mount 165 type=bind,src=/app/wwwroot,dst=/var/www/html richarvey/nginx-php-fpm 166 將部落格的包解壓到自己設定好的掛載目錄/app/wwwroot/167 [[email protected] ~]# tar xf wordpress-4.7.4-zh_CN.tar.gz -C /app/wwwroot/ 168 [[email protected] ~]# cd /app/wwwroot/ 169 然後開啟瀏覽器去訪問你的ip地址的88埠就可以了