在Centos7上安裝Docker

淺色夏墨發表於2018-07-31

在Centos7上安裝Docker-ce直接用yum install docker -y安裝的docker版本為1.12,但是docker發展很快,現在都18.03.1了。docker-ce是指docker的社群版。1、安裝 yum-utils,它提供了 yum-config-manager,可用來管理yum源yum install -y yum-utils

2、新增Docker-CE的yum源yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

如果下不了就直接拷貝檔案到 /etc/yum.repos.d/docker-ce.repo如果不能更新 顯示被鎖 就刪除那個鎖的檔案rm .pid的這個檔案3、更新yum源索引yum makecache fast

4、yum安裝 docker-ceyum install docker-ce -y

5、啟動與停止Dockersystemctl命令是系統服務管理器指令,它是 service 和 chkconfig 兩個命令組合。?啟動docker:systemctl start?docker?停止docker:systemctl stop?docker?重啟docker:systemctl restart?docker?檢視docker狀態:systemctl status?docker?開機啟動:systemctl enable?docker

6、驗證是否安裝成功docker info

列出docker下的所有映象:docker images

?REPOSITORY:映象所在的倉庫名稱?TAG:映象標籤?IMAGE ID:映象ID?CREATED:映象的建立日期(不是獲取該映象的日期)?SIZE:映象大小?這些映象都是儲存在Docker宿主機的/var/lib/docker目錄下

3.3搜尋映象如果你需要從網路中查詢需要的映象,可以通過以下命令搜尋docker search 映象名稱

?NAME:倉庫名稱?DESCRIPTION:映象描述?STARS:使用者評價,反應一個映象的受歡迎程度?OFFICIAL:是否官方AUTOMATED:自動構建,表示該映象由Docker Hub自動構建流程建立的

3.4.1從Docker Hub拉取Docker映象首頁,包括官方映象和其它公開映象

使用命令拉取:docker pull centos:7目前國內訪問docker hub速度上有點尷尬,使用docker Mirror勢在必行。現有國內提供docker映象加速服務的商家有不少,下面重點daocloud映象加速。3.4.1.1使用Docker加速器針對Docker客戶端版本大於1.8的使用者註冊https://www.daocloud.io

在Linux命令列下執行如下命令來使用加速器:curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://8b4bf98a.m.daocloud.io

systemctl daemon-reload

systemctl restart docker

3.5刪除映象1、docker rmi $IMAGE_ID:刪除指定映象2、docker rmi docker images -q:刪除所有映象

4.Docker容器操作4.1檢視容器?檢視正在執行容器:docker ps?檢視所有的容器(啟動過的歷史容器):docker ps –a

?檢視最後一次執行的容器:docker ps –l

?檢視停止的容器docker ps -f status=exited

4.2建立與啟動容器?建立容器常用的引數說明:?建立容器命令:docker run?-i:表示執行容器?-t:表示容器啟動後會進入其命令列。加入這兩個引數後,容器建立就能登入進去。即分配一個偽終端。?–name :為建立的容器命名。?-v:表示目錄對映關係(前者是宿主機目錄,後者是對映到宿主機上的目錄),可以使用多個-v做多個目錄或檔案對映。注意:最好做目錄對映,在宿主機上做修改,然後共享到容器上。?-d:在run後面加上-d引數,則會建立一個守護式容器在後臺執行(這樣建立容器後不會自動登入容器,如果只加-i -t兩個引數,建立後就會自動進去容器)。?-p:表示埠對映,前者是宿主機埠,後者是容器內的對映埠。可以使用多個-p做多個埠對映

4.1.1互動式容器建立一個互動式容器並取名為mycentosdocker run -it –name=mycentos centos:7 /bin/bash這時我們通過ps命令檢視,發現可以看到啟動的容器,狀態為啟動狀態

使用exit命令 退出當前容器

然後用ps -a 命令檢視發現該容器也隨之停止:

守護式容器建立一個守護式容器:如果對於一個需要長期執行的容器來說,我們可以建立一個守護式容器。命令如下(容器名稱不能重複):docker run -di –name=mycentos2 centos:7?登入守護式容器方式:docker exec -it container_name (或者 container_id) /bin/bash(exit退出時,容器不會停止)

4.3停止與啟動容器?停止正在執行的容器:docker stop $CONTAINER_NAME/ID

?啟動已執行過的容器:docker start $CONTAINER_NAME/ID

4.4檔案拷貝如果我們需要將檔案拷貝到容器內可以使用cp命令docker cp 需要拷貝的檔案或目錄 容器名稱:容器目錄也可以將檔案從容器內拷貝出來docker cp 容器名稱:容器目錄 需要拷貝的檔案或目錄4.5目錄掛載我們可以在建立容器的時候,將宿主機的目錄與容器內的目錄進行對映,這樣我們就可以通過修改宿主機某個目錄的檔案從而去影響容器。建立容器 新增-v引數 後邊為 宿主機目錄:容器目錄docker run -di -v /usr/local/myhtml:/usr/local/myhtml –name=mycentos2 centos:7如果你共享的是多級的目錄,可能會出現許可權不足的提示。

這是因為CentOS7中的安全模組selinux把許可權禁掉了,我們需要新增引數 –privileged=true 來解決掛載的目錄沒有許可權的問題4.6檢視容器IP地址我們可以通過以下命令檢視容器執行的各種資料docker inspect mycentos2也可以直接執行下面的命令直接輸出IP地址docker inspect –format=`{{.NetworkSettings.IPAddress}}` mycentos2

4.7刪除容器?刪除指定的容器:docker rm $CONTAINER_ID/NAME

注意,只能刪除停止的容器?刪除所有容器:docker rm docker ps -a -q

5.部署應用5.1 MySQL部署5.1.1拉取MySQL映象docker pull mysql

檢視映象

5.1.2建立MySQL容器docker run -di –name=123_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql-p 代表埠對映,格式為 宿主機對映埠:容器執行埠-e 代表新增環境變數 MYSQL_ROOT_PASSWORD是root使用者的登陸密碼5.1.3進入MySQL容器,登陸MySQL 進入mysql容器docker exec -it 123_mysql /bin/bash登陸mysqlmysql -u root -p5.1.4遠端登陸MySQL(1)我們在我們本機的電腦上去連線虛擬機器Centos中的Docker容器,這裡192.168.247.130是虛擬機器作業系統的IP

5.1.5檢視容器IP地址我們可以通過以下命令檢視容器執行的各種資料docker inspect 123_mysql執行效果如下:

我們可以看到我們的資料庫伺服器的IP是172.17.0.2 5.2 tomcat部署5.2.1拉取tomcat映象docker pull tomcat:8.5-jre85.2.2建立tomcat容器建立容器用於部署java web應用 -p表示地址對映docker run -di –name=123_tomcat -p 9000:8080 -v /usr/local/myhtml:/usr/local/tomcat/webapps –privileged=true tomcat:8.5-jre85.3 Nginx部署5.3.1拉取Nginx映象docker pull nginx5.3.2建立Nginx容器docker run -di –name=123_nginx -p 80:80 nginx5.3.3測試Nginx瀏覽器位址列輸入: http://192.168.247.135

5.3.4配置反向代理官方的nginx映象,nginx配置檔案default.conf 在/etc/nginx/conf.d目錄下。在容器內編輯配置檔案不方便,我們可以先將配置檔案從容器內拷貝到宿主機,編輯修改後再拷貝回去。(1)從容器拷貝配置檔案到宿主機docker cp 123_nginx:/etc/nginx/conf.d/default.conf default.conf (2)編輯default.conf,新增反向代理配置upstream daili { server 172.17.0.7:8080;}server { listen 80; server_name www.test.com; location / { proxy_pass http://daili; index index.html index.htm; }}

(3)將修改後的配置檔案拷貝到容器docker cp default.conf 123_nginx:/etc/nginx/conf.d/default.conf(4)重新啟動容器docker restart 123_nginx(5)設定域名指向192.168.247.135 www.test.com 5.4 Redis部署5.4.1拉取Redis映象docker pull redis5.4.2建立Redis容器 docker run -di –name=123_redis -p 6379:6379 redis

5.4.3客戶端測試在你的本地電腦命令提示符下,用window版本redis客戶端測試redis-cli -h 192.168.247.135

6.備份與遷移6.1容器儲存為映象我們可以通過以下命令將容器儲存為映象docker commit 123_nginx mynginx123_nginx是容器名稱mynginx是新的映象名稱此映象的內容就是你當前容器的內容,接下來你可以用此映象再次執行新的容器6.2映象備份docker save -o mynginx.tar mynginx-o 輸出到的檔案執行後,執行ls命令即可看到打成的tar包

<pre spellcheck=”false” class=”md-fences md-end-block contain-cm modeLoaded” lang=”” contenteditable=”false” cid=”n484″ mdtype=”fences” style=”box-sizing: border-box; overflow: visible; font-family: Consolas, “Liberation Mono”, Courier, monospace; font-size: 0.9em; white-space: normal; display: block; break-inside: avoid; text-align: left; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(223, 226, 229); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;”>到此,映象就都打包完成了,如果在一臺新機器還原docker映象,只需要使用:docker load –input centos_nginx.tar就可以了。6.3映象恢復與遷移</pre>

首先我們先刪除掉mynginx映象然後執行此命令進行恢復docker load –i mynginx.tar-i 輸入的檔案執行後再次檢視映象,可以看到映象已經恢復


相關文章