Docker總結2/3---常用命令和應用部署

常用命令

1.鏡像相關命令

(1)查看鏡像

docker images

在這裏插入圖片描述

鏡像內容 含義
REPOSITORY 鏡像名稱
TAG 鏡像標籤
IMAGE ID 鏡像ID
CREATED 鏡像的創建日期(不是獲取該鏡像的日期)
SIZE 鏡像大小

這些鏡像都是存儲在Docker宿主機的/var/lib/docker目錄下

(2)搜索鏡像

如果你需要從網絡中查找需要的鏡像,可以通過以下命令搜索

docker search 鏡像名稱
內容 含義
NAME 倉庫名稱
DESCRIPTION 鏡像描述
STARS 用戶評價,反應一個鏡像的受歡迎程度
OFFICIAL 是否官方
AUTOMATED 自動構建,表示該鏡像由Docker Hub自動構建流程創建的

(3) 拉取鏡像

拉取鏡像就是從中央倉庫中下載鏡像到本地

docker pull 鏡像名稱

(4)刪除鏡像

按鏡像ID刪除鏡像

docker rmi 鏡像ID

刪除所有鏡像(刪除鏡像需要保證,鏡像中沒有容器,否則需要先刪除容器,再刪除鏡像。)

docker rmi `docker images -q`

2 容器相關命令

(1) 查看容器

查看正在運行的容器

docker ps

查看所有容器

docker ps –a

查看最後一次運行的容器

docker ps –l

查看停止的容器

docker ps -f status=exited

(2)創建與啓動容器

創建容器常用的參數說明:

創建容器命令:
docker run

命 令 含義
-i 運行容器
-t 容器啓動後會進入其命令行。加入這兩個參數後,容器創建就能登錄進去。即分配一個僞終端
–name 爲創建的容器命名
-v 目錄映射關係(前者是宿主機目錄,後者是映射到宿主機上的目錄),可以使用多個-v做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然後共享到容器上
-d 在run後面加上-d參數,則會創建一個守護式容器在後臺運行(這樣創建容器後不會自動登錄容器,如果只加-i -t兩個參數,創建後就會自動進去容器)。
-p 端口映射,前者是宿主機端口,後者是容器內的映射端口。可以使用多個-p做多個端口映射

Ⅰ交互式方式創建容器

通過ps命令查看,發現可以看到啓動的容器,狀態爲啓動狀態

docker run -it --name=容器名稱 鏡像名稱:標籤 /bin/bash

退出當前容器

exit

Ⅱ守護式方式創建容器:

docker run -di --name=容器名稱 鏡像名稱:標籤

登錄守護式容器方式:

docker exec -it 容器名稱 (或者容器ID)  /bin/bash
交互式創建容器 守護式創建容器
直接進入容器內部,退出之後,容器停止。 不會容器內部,exec進入容器內部之後,再退出,容器依然運行狀態。

(3)停止與啓動容器

停止容器:

docker stop 容器名稱(或者容器ID)

啓動容器:

docker start 容器名稱(或者容器ID)

(4)文件拷貝

  • 無論容器是否啓動,都可以進行文件拷貝。

如果我們需要將文件拷貝到容器內可以使用cp命令

docker cp 需要拷貝的文件或目錄 容器名稱:容器目錄

也可以將文件從容器內拷貝出來

docker cp 容器名稱:容器目錄 需要拷貝的文件或目錄

(5) 目錄掛載

我們可以在創建容器的時候,將宿主機的目錄容器內的目錄進行映射,這樣我們就可以通過修改宿主機某個目錄的文件從而去影響容器。

創建容器 添加-v參數 後邊爲   宿主機目錄:容器目錄

例如:

docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7

如果你共享的是多級的目錄,可能會出現權限不足的提示。

這是因爲CentOS7中的安全模塊selinux把權限禁掉了,我們需要添加參數 --privileged=true 來解決掛載的目錄沒有權限的問題

(6)查看容器IP地址

我們可以通過以下命令查看容器運行的各種數據

docker inspect 容器名稱(容器ID) 

也可以直接執行下面的命令直接輸出IP地址

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名稱(容器ID)

(7)刪除容器

刪除指定的容器:

docker rm 容器名稱(容器ID)

應用部署

1.MySQL部署

(1)拉取mysql鏡像

docker pull centos/mysql-57-centos7

(2)創建容器

docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
參數 含義
–name 自定義的Mysql的名稱
-p 端口映射,格式爲 宿主機映射端口:容器運行端口
-e 添加環境變量 MYSQL_ROOT_PASSWORD 是root用戶的登陸密碼
  • 輸入docker ps 查看映射的端口號
    在這裏插入圖片描述

(3)遠程登錄mysql

連接宿主機的IP ,指定端口爲33306
本地測試連接:
在這裏插入圖片描述

2.tomcat部署

(1)拉取鏡像

docker pull tomcat:7-jre7

(2)創建容器

創建容器 -p表示地址映射
(端口映射+目錄掛載)

docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7

【測試tomcat部署內容】

  • 上傳cas.war文件
    在這裏插入圖片描述

  • 轉移cas.war文件到剛纔創建的目錄
    mv cas.war /usr/local/web

  • 瀏覽器輸入 “服務器IP地址:映射的端口號/cas” 即可看到上傳的文件頁面:
    在這裏插入圖片描述

3 Nginx部署

(1)拉取鏡像

docker pull nginx

(2)創建Nginx容器

(端口映射)

docker run -di --name=mynginx -p 80:80 nginx

【測試nginx部署的頁面】

[root@localhost ~]# docker exec -it mynginx /bin/bash
root@348ce53d721c:/# dir    
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@348ce53d721c:/# cd etc/nginx
root@348ce53d721c:/etc/nginx# dir
conf.d  fastcgi_params  koi-utf  koi-win  mime.types  modules  nginx.conf  scgi_params  uwsgi_params  win-utf
root@348ce53d721c:/etc/nginx# cd conf.d
root@348ce53d721c:/etc/nginx/conf.d# dir
default.conf
root@348ce53d721c:/etc/nginx/conf.d# cat default.conf   
root@348ce53d721c:/etc/nginx/conf.d# cd /usr/share/nginx/html/
root@348ce53d721c:/usr/share/nginx/html# dir
50x.html index.html
root@348ce53d721c:/usr/share/nginx/html# exit
exit
[root@localhost ~]# dir
anaconda-ks.cfg  html  mynginx.tar dist
[root@localhost ~]# mv dist html
[root@localhost ~]# docker cp html mynginx:/usr/share/nginx

4 Redis部署

(1)拉取鏡像

docker pull redis

(2)創建容器

(端口映射)

docker run -di --name=myredis -p 6379:6379 redis

總結

到這裏Docker常用命令,和常用軟件的部署就結束了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章