我愛java系列---【Docker的使用】

1.Docker的啓動與中止

systemctl命令是系統服務管理器指令mysql

啓動docker:nginx


systemctl start docker

中止docker:web


systemctl stop docker

重啓docker:redis


systemctl restart docker

查看docker狀態:sql


systemctl status docker

開機啓動:docker


systemctl enable docker

查看docker概要信息centos


docker info

查看docker幫助文檔tomcat


docker --help

2.經常使用命令

2.1 鏡像相關命令

2.1.1 查看鏡像


docker images

REPOSITORY:鏡像名稱bash

TAG:鏡像標籤網絡

IMAGE ID:鏡像ID

CREATED:鏡像的建立日期(不是獲取該鏡像的日期)

SIZE:鏡像大小

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

2.1.2 搜索鏡像

若是你須要從網絡中查找須要的鏡像,能夠經過如下命令搜索


docker search 鏡像名稱

NAME:倉庫名稱

DESCRIPTION:鏡像描述

STARS:用戶評價,反應一個鏡像的受歡迎程度

OFFICIAL:是否官方

AUTOMATED:自動構建,表示該鏡像由Docker Hub自動構建流程建立的

2.1.3 拉取鏡像

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


docker pull 鏡像名稱

例如,我要下載centos7鏡像


docker pull centos:7

2.1.4 刪除鏡像

按鏡像ID刪除鏡像


docker rmi 鏡像ID

刪除全部鏡像


docker rmi `docker images -q`

2.2 容器相關命令

2.2.1 查看容器

查看正在運行的容器


docker ps

查看全部容器


docker ps –a

查看最後一次運行的容器


docker ps –l

查看中止的容器


docker ps -f status=exited

2.2.2 建立與啓動容器

建立容器經常使用的參數說明:

建立容器命令:docker run

-i:表示運行容器

-t:表示容器啓動後會進入其命令行。加入這兩個參數後,容器建立就能登陸進去。即分配一個僞終端。

--name :爲建立的容器命名。

-v:表示目錄映射關係(前者是宿主機目錄,後者是映射到宿主機上的目錄),可使用多個-v作多個目錄或文件映射。注意:最好作目錄映射,在宿主機上作修改,而後共享到容器上。

-d:在run後面加上-d參數,則會建立一個守護式容器在後臺運行(這樣建立容器後不會自動登陸容器,若是隻加-i -t兩個參數,建立後就會自動進去容器)。

-p:表示端口映射,前者是宿主機端口,後者是容器內的映射端口。可使用多個-p作多個端口映射

(1)交互式方式建立容器


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

這時咱們經過ps命令查看,發現能夠看到啓動的容器,狀態爲啓動狀態

退出當前容器


exit

(2)守護式方式建立容器:


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

登陸守護式容器方式:


docker exec -it 容器名稱 (或者容器ID) /bin/bash

2.2.3 中止與啓動容器

中止容器:


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

啓動容器:


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

2.2.4 文件拷貝

若是咱們須要將文件拷貝到容器內可使用cp命令


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

也能夠將文件從容器內拷貝出來


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

 

2.2.5 查看容器IP地址

咱們能夠經過如下命令查看容器運行的各類數據


docker inspect 容器名稱(容器ID) 

也能夠直接執行下面的命令直接輸出IP地址


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

2.2.6 刪除容器

刪除指定的容器:


docker rm 容器名稱(容器ID)

3 應用部署

3.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 centos/mysql-57-centos7

-p 表明端口映射,格式爲  宿主機映射端口:容器運行端口

-e 表明添加環境變量  MYSQL_ROOT_PASSWORD 是root用戶的登錄密碼

(3)遠程登陸mysql

鏈接宿主機的IP ,指定端口爲33306

3.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

3.3 Nginx部署

(1)拉取鏡像


docker pull nginx

(2)建立Nginx容器


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

3.4 Redis部署

1.官方倉庫https://hub.docker.com/r/library/redis/tags/中查看redis的各個版本以下:

 

 2.此時我選擇拉取redis:4這個版本,輸入命令: docker pull redis:4

3.啓動redis命令:docker run --name some-redis1 -p 6380:6379  -d redis:4 --requirepass "123456"

redis啓動的默認端口號是6379,這個時候宿主機使用6380進行映射,並設置受權密碼123456,

以下圖,查看已啓動的容器

4.redis客戶端鏈接命令:docker exec -it 0b63b7eacc29 redis-cli 啓動時使用container id進行啓動0b63b7eacc29,

這個時候便鏈接到了客戶端,能夠進行操做了,外部程序鏈接此容器的redis時地址爲:宿主機IP+6380(宿主機映射IP)

4 遷移與備份

4.1 容器保存爲鏡像

咱們能夠經過如下命令將容器保存爲鏡像


docker commit mynginx mynginx_i

4.2 鏡像備份

咱們能夠經過如下命令將鏡像保存爲tar 文件


docker save -o mynginx.tar mynginx_i

4.3 鏡像恢復與遷移

首先咱們先刪除掉mynginx_img鏡像 而後執行此命令進行恢復


docker load -i mynginx.tar

-i 輸入的文件

執行後再次查看鏡像,能夠看到鏡像已經恢復

相關文章
相關標籤/搜索