1、Docker是什么?
在計算機(jī)中,虛擬化(英語: Virtualization) 是一種資源管理技術(shù),是將計算機(jī)的各種實體資源,如服務(wù)器、網(wǎng)絡(luò)、內(nèi)存及存儲等,予以抽象、轉(zhuǎn)換后呈現(xiàn)出來,打破實體結(jié)構(gòu)間的不可切割的障礙,使用戶可以比原本的組態(tài)更好的方式來應(yīng)用這些資源。這些資源的新虛擬部份是不受現(xiàn)有資源的架設(shè)方式,地域或物理組態(tài)所限制。一般所指的虛擬化資源包括計算能力和資料存儲。
在實際的生產(chǎn)環(huán)境中。虛擬化技術(shù)主要用來解決高性能的物理硬件產(chǎn)能過利和老的舊的硬件產(chǎn)能過低的重組重用,透明化底層物理硬件,從而最大化的利用物理硬件資源的充分利用。
虛擬化技術(shù)種類很多,例如:軟件虛擬化、硬件虛擬化、內(nèi)存虛擬化、網(wǎng)絡(luò)虛擬化、桌面虛擬化、服務(wù)虛擬化、虛擬機(jī)等等。.
Docker和傳統(tǒng)虛擬機(jī)的區(qū)別
特性
虛擬機(jī)的架構(gòu)
容器的架構(gòu)
啟動
分鐘級
秒級
性能
弱于原生
接近原生
硬盤使用
一般為GB
一般為MB
系統(tǒng)支持量
一般幾十個
單機(jī)上千個容器
2、Docker的安裝
2.1、Windows下的安裝
直接在官網(wǎng)下載windows包雙擊運(yùn)行即可,對于win10來說需要開啟Hype-v,直接百度打開即可。
2.2、Linux下的安裝
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
# 安裝報錯 Problem: problem with installed package buildah
# 執(zhí)行語句 yum erase podman buildah
# 再進(jìn)行安裝
systemctl status docker
systemctl restart docker
docker info
systemctl enable docker
# 建立docker組
sudo groupadd docker
sudo usermod -aG docker $USER
# 重啟服務(wù)
systemctl restart docker
2.3、核心概念
- 倉庫
- 遠(yuǎn)程倉庫:開發(fā)者鏡像及官方鏡像
- 本地倉庫:只保存當(dāng)前自己使用過的鏡像及自定義鏡像
- 作用:用來存放docker鏡像位置
- 鏡像
- 作用:一個鏡像就代表一個軟件
- 容器
- 作用:一個幢像運(yùn)行一次就會生成一個實例就是生成一個容器
2.4、Aliyun服務(wù)加速
docker提供了一個遠(yuǎn)程倉庫,主要是用來存放鏡像的,而我們所需要的鏡像都需要去遠(yuǎn)程倉庫進(jìn)行拉取,dockerHub 地址:https://registry.hub.docker.com/_/mysql?tab=tags,這里以mysql鏡像為例,然后直接在虛擬機(jī)當(dāng)中執(zhí)行命令
# 獲取最新版本的mysql
docker pull mysql
# 獲取指定版本的mysql 8.0.18版
docker pull mysql:8.0.18
在這里的dockerhub是為全球服務(wù)的,速度難免會有點慢,這里可以配置阿里的鏡像來進(jìn)行獲取docker遠(yuǎn)程倉庫的鏡像。阿里云服務(wù)加速配置https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors ,按照官網(wǎng)進(jìn)行配置即可:
3、Docker的操作
3.1、Hello World
在安裝docker之后,直接使用命令:docker run hello-world
表示直接運(yùn)行hello-world這個鏡像。而他的執(zhí)行基本步驟如下:
3.2、Docker 的基本命令
3.2.1、docker引擎及幫助操作:
# 查看docker信息
docker info
# 查看docker版本
docker version
# 幫助命令
docker --help
3.2.2、鏡像相關(guān)操作:
# 查看鏡像
docker images
docker images -a #展示所有鏡像
docker images -q #只展示鏡像的ID
docker images mysql #只展示mysql鏡像
# 下載鏡像
docker pull 鏡像名稱:版本號 # 如 docker pull mysql:8.0.27
docker pull 鏡像名稱:@DIGEST
#如:docker pull mysql:DIGEST:sha256:975b3b1a6df6bf66221d1702b76c4141a4cd09f93f22f70c32edc99a6c256fe8
# 搜索鏡像
docker search 鏡像
# docker search mysql
# 搜索stars數(shù)在3000以上的image
docker search mysql --filter=stars=3000
# 刪除鏡像
docker image rm 鏡像名:版本或者id標(biāo)識 # docker image rm mysql:8.0.27
docker image rm -f 鏡像名:版本或者id標(biāo)識 # 強(qiáng)制刪除
# 簡化刪除
docker rmi 鏡像名:版本
# 組合運(yùn)用
# 清空本地倉庫所有鏡像
docker rmi -f $(docker images -q)
3.2.3、容器相關(guān)操作:
# 導(dǎo)入本地鏡像
docker load -i 鏡像文件
# 運(yùn)行一個容器
docker run 鏡像名稱:版本號
# 運(yùn)行容器與宿主機(jī)進(jìn)行映射
docker run -p 8080:8080 鏡像名稱:版本號
# 啟動容器映射端口,后臺啟動
docker run -p 8080:8080 -d 鏡像名稱:版本號
# 啟動容器映射端口,后臺啟動,指定名稱
docker run -p 8080:8080 --name 容器名稱 -d 鏡像名稱:版本號
# 查看正在運(yùn)行的容器
docker ps
# 查看運(yùn)行容器的歷史記錄
docker ps -a
# 查看最近運(yùn)行的兩個容器
docker ps -a -n=2
# 查看正在運(yùn)行的容器id
docker ps -q
# 查看所有容器的id
docker ps -aq
# 容器的啟動和停止
docker start 容器名稱或者容器id
docker restart 容器名稱或者容器id
docker stop 容器名稱或者容器id
docker kill 容器名稱或者容器id
# 容器的刪除
docker rm 容器的id或者名稱
docker rm -f 容器的id或者名稱
docker rm -f $(docker ps -aq)
# 查看日志
docker logs 容器id或名稱
# 實時展示日志
docker logs -f 容器id或名稱
# 加入時間戳展示實時展示日志
docker logs -tf 容器id或名稱
# 查看最后n行日志
docker logs --tail 5 容器id或名稱
# 查看容器的內(nèi)部進(jìn)程
docker top 容器id或名稱
# 與容器內(nèi)部進(jìn)行交互
docker exec -it 容器id或名稱 bash
# 從容器復(fù)制文件到操作系統(tǒng)
docker cp 容器id:路徑 操作系統(tǒng)下的路徑
# 從操作系統(tǒng)復(fù)制文件到容器當(dāng)中
docker cp 操作系統(tǒng)下的路徑 容器id:路徑
在這里的文件復(fù)制主要還是運(yùn)用到本地項目打包后的部署,比如說這里一個項目開發(fā)完成之后,打成一個jar包或者war包,丟給tomcat進(jìn)行啟動部署,而后直接將這個包給到tomcat鏡像下的webapps目錄下,重新啟動tomcat或者重啟容器,最后進(jìn)行訪問項目。
# 查看容器中的元數(shù)據(jù)
docker inspect 容器id
# 數(shù)據(jù)卷(Volume):實現(xiàn)宿主機(jī)系統(tǒng)和容器之間的文件共享
# 數(shù)據(jù)卷的使用:
docker run -d -p 8080:8080 --name 容器名稱 -v 操作系統(tǒng)下路徑:容器下路徑 鏡像名稱:版本
# aa代表一個數(shù)據(jù)卷的名字,名稱可以自定義,docker在不存在時自動創(chuàng)建這個數(shù)據(jù)卷,并且同時自動映射宿主機(jī)當(dāng)中的某個目錄
# 同時在啟動容器的時候會將aa對應(yīng)容器目錄中全部內(nèi)容復(fù)制到aa映射目錄當(dāng)中
docker run -d -p 8080:8080 --name 容器名稱 -v aa:容器下路徑 鏡像名稱:版本
find / -name aa
# 將容器打成一個新的鏡像
docker commit -m "描述信息" -a "作者信息" 容器id或名稱 打包的鏡像名稱:標(biāo)簽版本
# 將鏡像備份出來
docker save 鏡像名稱:版本 -o 文件名
# 重新加載鏡像
docker load -i 鏡像文件
3.3、Docker 鏡像分層原理
鏡像是一種輕量級的,可執(zhí)行的獨(dú)立軟件包,用來打包軟件運(yùn)行環(huán)境和基于運(yùn)行環(huán)境開發(fā)的軟件,它包含運(yùn)行某個軟件所需的所有內(nèi)容,包括代碼、運(yùn)行時所需的庫、環(huán)境變量和配置文件。
Docker當(dāng)中的鏡像為什么這莫大?
Docker的設(shè)計:一個軟件鏡像不僅僅是原來軟件包,鏡像當(dāng)中還包含軟件包所需的操作系統(tǒng)依賴軟件自身依賴以及自身軟件包組成。
分層原理
很顯然,在這里docker容器的設(shè)計簡單來說,對于不同的環(huán)境都給抽離出來進(jìn)行分層,就比如說很多的軟件服務(wù)(比如說:Naocs、ES、Hadoop等等)都需要jdk的環(huán)境,那再進(jìn)行拉取鏡像的時候,這些鏡像都會先檢驗jdk的環(huán)境,再進(jìn)行后續(xù)的安裝,那這里裝個Naocs、ES、Hadoop要下載三次JDK,這顯然浪費(fèi)了很多的內(nèi)存,所以在這里Docker采用了分層的原理,這里每一層的環(huán)境依賴都給分開了,再一次安裝了jdk環(huán)境之后,后續(xù)安裝的服務(wù)也要jdk依賴就不會再去拉取了,回直接使用本地有的jdk環(huán)境。
3.4、Docker 網(wǎng)絡(luò)
在docker當(dāng)中容器和容器之間也是可以進(jìn)行通信的。就好比Linux中我們使用 ip addr
可以看到當(dāng)前虛擬機(jī)的ip地址,在這里可以查看一下容器中的IP,docker exec -it 容器名 ip addr
會發(fā)現(xiàn)有一個對應(yīng)的映射另一個映射。說明docker容器網(wǎng)絡(luò)是通過veth-pair技術(shù)實現(xiàn)的。
并且在這里還可以通過docker inspect 容器名稱或id
命令查看容器的元數(shù)據(jù),這里也有該容器隨機(jī)分配的ip地址。
而當(dāng)我們啟動多個容器之后,可以查看多個容器的ip地址,可以看到容器的ip地址都在同一個網(wǎng)段上,這就有點似曾相識的感覺了,在linux當(dāng)中我們配置多臺機(jī)器進(jìn)行互相通信,那這里的容器通信那也是一樣的不,直接進(jìn)入到一臺容器之內(nèi),使用ping命令,ping另外一個容器的ip。
再就是在啟動容器之后,默認(rèn)為分配的ip地址都同一個網(wǎng)橋上,而這里容器當(dāng)中需要對網(wǎng)橋進(jìn)行分割開又要如何操作呢?我們需要創(chuàng)建一個網(wǎng)橋,而后在啟動容器的時候指定對應(yīng)的網(wǎng)橋即可。
# 查看網(wǎng)橋
docker network ls
# 創(chuàng)建網(wǎng)橋
docker network create 網(wǎng)橋名稱
# 容器指定網(wǎng)橋掛載
docker run -p -d 8080:8080 --network 網(wǎng)橋名稱 --name 容器名稱 鏡像:版本
# 在啟動容器,生成的ip地址會和容器名稱進(jìn)行映射,這里除了使用ip進(jìn)行訪問,還可以使用容器名稱進(jìn)行訪問
# 刪除
docker network rm 網(wǎng)橋名稱
# 網(wǎng)橋細(xì)節(jié)
docker inspect 網(wǎng)橋名稱
3.5、Docker 數(shù)據(jù)卷
3.5.1、作用
是用來實現(xiàn)容器和宿主機(jī)之間的數(shù)據(jù)共享
3.5.2:特點
- 數(shù)據(jù)卷可以在容器之間進(jìn)行共享和重用
- 對數(shù)據(jù)卷的修改會立即影響到對應(yīng)的容器
- 對數(shù)據(jù)卷的修改不會影響鏡像
- 數(shù)據(jù)卷默認(rèn)一直存在,即使容器被刪除
3.5.3、數(shù)據(jù)卷操作
# 自定義數(shù)據(jù)卷目錄
docker run -v 絕對路徑:容器內(nèi)路徑
# 自動創(chuàng)建數(shù)據(jù)卷
docker run -v 卷名:容器內(nèi)路徑
# 查看數(shù)據(jù)卷
docker volume ls
# 查看數(shù)據(jù)卷的細(xì)節(jié)
docker volume inspect 卷名
# 創(chuàng)建數(shù)據(jù)卷
docker volume create 卷名
# 刪除數(shù)據(jù)卷(沒有使用的數(shù)據(jù)卷)
docker volume prune
# 刪除指定的數(shù)據(jù)卷
docker volume rm 卷名
3.6、Docker 核心架構(gòu)
4、Docker安裝服務(wù)
4.1、mysql 的安裝
首先我們需要確定服務(wù)的版本,拉取鏡像到本地:dockerHub 拉取鏡像描述文件 ,在鏡像的描述文件當(dāng)中,會對服務(wù)的啟動、查看服務(wù)日志、服務(wù)配置等等都有進(jìn)行描述。
# 先獲取mysql服務(wù)
docker pull mysql:8.0.18
服務(wù)的啟動:這里需要指定運(yùn)行的環(huán)境
# 基本啟動
docker run -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.18
# 啟動服務(wù) 后臺運(yùn)行 指定root用戶賬號密碼(設(shè)置root賬戶的密碼為root) 指定容器名稱
docker run -d -p 3307:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.18
# 啟動服務(wù) 后臺運(yùn)行 指定root用戶賬號密碼 指定容器名稱 使用數(shù)據(jù)卷將數(shù)據(jù)持久化
# mysql 容器默認(rèn)存儲位置:/var/lib/mysql
docker run -d -p 3307:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=root -d -v mysqldata:/var/lib/mysql mysql:8.0.18
# 啟動服務(wù) 后臺運(yùn)行 指定root用戶賬號密碼 指定容器名稱 使用數(shù)據(jù)卷將數(shù)據(jù)持久化 已修改之后的配置文件啟動
docker run -d -p 3307:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=root -d -v mysqldata:/var/lib/mysql -v mysqlconfig:/etc/mysql mysql:8.0.18
4.2、Tomcat 的安裝
# 先獲取鏡像
docker pull tomcat:9.0-jdk8
# 服務(wù)啟動
docker run -d -p 8080:8080 --name tomcat tomcat:9.0-jdk8
# 項目的部署目錄 /usr/local/tomcat/webapps
docker run -d -p 8080:8080 -v apps:/usr/local/tomcat/webapps --name tomcat tomcat:9.0-jdk8
# 配置文件目錄 /usr/local/tomcat/conf
docker run -d -p 8080:8080 -v apps:/usr/local/tomcat/webapps -v confs:/usr/local/tomcat/conf --name tomcat tomcat:9.0-jdk8
4.3、Redis的安裝
# 拉取鏡像
docker pull redis:6.2.6
# 啟動服務(wù)
docker run -d -p 6379:6379 --name redis6 redis:6.2.6
# redis 持久化
docker run -d --name redis6 redis:6.2.6 redis-server --appendonly yes
4.4、ElasticSearch 的安裝
5、Dockerfile
5.1、Dockerfile 概述
5.1.1、Dockerfile是什么?
Dockerfile是用來幫助自己構(gòu)建一個自定義鏡像
5.1.2、為什么會存在Dockerfile?
日常用戶可以將自己應(yīng)用進(jìn)行打包成鏡像,這樣就可以讓我們自己的應(yīng)用在容器當(dāng)中運(yùn)行
5.1.3、Dockerfile構(gòu)建鏡像原理
5.2、Dockerfile 語法
指令
說明
FROM
基礎(chǔ)鏡像,你指定的centos等等
MAINTAINER
鏡像創(chuàng)建者說明:一般姓名+郵箱
RUN
鏡像構(gòu)成的時候需要運(yùn)行的命令
ADD
用來添加內(nèi)容,比如MySQL,Tomcat等等
WORKDIR
鏡像的工作目錄
VOLUME
掛載的目錄
EXPOSE
暴露端口的設(shè)置
CMD
指定這個容器啟動的時候要運(yùn)行的命令,只運(yùn)行最后一個,即前面的會被后面的命令替換
ENTRYPOINT
指定這個容器啟動的時候要運(yùn)行的命令,可以追加命令
ONBUILD
當(dāng)構(gòu)建一個被繼承的DockerFile的時候,這個時候就會運(yùn)行 ONBUILD的指令
COPY
類似ADD命令,將文件copy到鏡像中
ENV
構(gòu)建的時候設(shè)置環(huán)境變量
FROM:構(gòu)建一個自定義的鏡像
# 新建一個dockerfile文件
vim Dockerfile
# 寫入內(nèi)容
FROM centos:8
# 進(jìn)行build
docker build -t mycentos8:01 .
# RUN : 對鏡像進(jìn)行擴(kuò)展
docker run -it centos:7
# 不支持vim,對于vim的擴(kuò)展,在原本的dockerfile文件當(dāng)中加入
RUN yum install -y vim
# 或者使用這種語法
RUN ["yum","install","-y","vim"]
# EXPORT : 鏡像暴露端口
EXPOSE 8888
#指定工作目錄
WORKDIR /data
# 復(fù)制文件
COPY aa.txt /data/aa
# 添加內(nèi)容
ADD bb.txt /data/bb
ADD 下載地址 /data/tomcat
5.3、idea對Dockerfile支持
打開idea的settings,在以來當(dāng)中找到docker的依賴,進(jìn)行安裝該依賴,安裝之后重啟idea就可以對Dockerfile文件進(jìn)行編輯了。
第二個就是,Dockerfile文件都在linux上,在idea當(dāng)中怎么進(jìn)行編輯呢,可以選擇Tools下的deployment的browse remote host 進(jìn)行連接遠(yuǎn)程虛擬機(jī),這里直接連接上去之后在右側(cè)就會有虛擬機(jī)上的文件目錄信息,并且可以直接在idea當(dāng)中進(jìn)行打開了。
6、Docker compose
6.1、Docker compose 概述
6.1.1、compose的作用
用來負(fù)責(zé)對Docker容器集群的快速編排
6.1.2、compose的定位
是用來定義和運(yùn)行多個docker容器的應(yīng)用 同時可以對多個容器進(jìn)行編排
6.1.3、compose的核心概念
- 服務(wù):一個應(yīng)用的容器,服務(wù)可以存在多個
- 項目:由一組關(guān)聯(lián)的應(yīng)用容器組成的一個完整業(yè)務(wù)單元,在docker-compose.yml文件當(dāng)中進(jìn)行定義
6.1.4、compose的安裝
github下載地址:https://github.com/docker/compose/releases
首先在github上面下載對應(yīng)的版本包,下載之后將包上傳到linux服務(wù)器上。將文件進(jìn)行重命名并且復(fù)制到/usr/local/bin
目錄下,并且給該目錄賦予權(quán)限。最后直接使用docker-compose -v
命令查看版本進(jìn)行校驗是否安裝成功
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
6.1.5、docker和docker-compose直接的版本對應(yīng)
docker官網(wǎng)地址:https://docs.docker.com/compose/compose-file/
使用命令 docker -v
查看docker的版本,可以在官網(wǎng)當(dāng)中看到compose對docker版本的支持
6.2、Docker compose —— HelloWorld
在前面有說到compose當(dāng)中的組成部分,分別是服務(wù)和項目,這里首先創(chuàng)建一個目錄用來表示這第一個helloworld項目,在項目當(dāng)中添加docker-compose.yml文件用來編寫compose。
# 創(chuàng)建目錄
mkdir hello
cd hello
# 新建docker-compose.yml文件
vim docker-compose.yml
# 寫入內(nèi)容(這里在vim當(dāng)中編輯yml文件挺難受的,可以在idea當(dāng)中編輯遠(yuǎn)程主機(jī)的文件)
version: "3.0" # 指定compose的版本
services: # 指定服務(wù)
tomcat: # 單個服務(wù)
image: tomcat:9.0.27-jdk8 # 服務(wù)鏡像
ports:
- 8081:8080 # 暴露對應(yīng)的端口
# 保持文件內(nèi)容后進(jìn)行啟動compose
docker-compose up
# 服務(wù)啟動之后,可以直接進(jìn)行訪問8081端口
http://遠(yuǎn)程主機(jī)ip/8081
6.3、Docker compose —— 命令模板
version: "3.0" # compose版本
services:
user:
build:
context: user # dockerfile的鏡像
dockerfile: Dockerfile # 讀取dockerfile文件進(jìn)行打包獲取鏡像
container_name: user
ports:
- "8888:8888"
networks:
- hello
depends_on:
- tomcat
tomcat: # 單個服務(wù)標(biāo)識
container_name: tomcat # 啟動后的容器名稱 相當(dāng)于 --name 指定的名稱
image: tomcat:9.0.27-jdk8 # 鏡像
ports:
- 8081:8080 # 端口映射
volumes:
- tomcatwebapps:/usr/local/tomcat/webapps # 指定對應(yīng)的數(shù)據(jù)卷
networks:
- hello # 指定網(wǎng)橋
depends_on: # 服務(wù)啟動依賴
- tomcat1 # 服務(wù)標(biāo)識
- mysql
healthcheck: # 健康檢查
test: ['CMD','curl','-f','http://localhost']
interval: 1m30s
timeout: 10s
retries: 3
sysctls: # 修改內(nèi)核參數(shù)
- net.core.somaxconn=1024
- net.ipv4.tcp_syncookies=0
ulimits: # 修改最大進(jìn)程數(shù)
nproc: 65335
nofile:
soft: 20000
hard: 40000
tomcat1:
container_name: tomcat2
image: tomcat:9.0.27-jdk8
ports:
- 8082:8080
volumes:
- tomcatwebapps1:/usr/local/tomcat/webapps
networks:
- hello
mysql:
container_name: mysql8
image: mysql:8.0.18
ports:
- 3307:3306
# environment: # 指定啟動的環(huán)境
# - MYSQL_ROOT_PASSWORD=root
env_file: # 使用文件進(jìn)行代替
- ./mysql.env # mysql.evn文件內(nèi)容就是 MYSQL_ROOT_PASSWORD=root
volumes:
- mysqldata:/var/lib/mysql
- mysqlconfig:/etc/mysql
networks:
- hello
# 數(shù)據(jù)卷都要在這統(tǒng)計管理
volumes:
tomcatwebapps:
tomcatwebapps1:
# external: # 使用自定義數(shù)據(jù)卷名稱 默認(rèn)命名為 項目名_數(shù)據(jù)卷名 自定義后為 數(shù)據(jù)卷名
# true
mysqldata:
mysqlconfig:
# 統(tǒng)一管理網(wǎng)橋
networks:
hello:
6.4、Docker compose 指令
6.4.1、模板指令與指令
- 模板指令:用來書寫在docker-compose.yml文件當(dāng)中的指令,是用來為服務(wù)進(jìn)行服務(wù)的
- 指令:用來對整個docker-compose.yml對應(yīng)的這個項目進(jìn)行操作
6.4.2、常用指令
指令
說明
up
用來啟動所有的docker-compose服務(wù)
-f :表示指定啟動的文件名
-d:表示后臺啟動docker-compose up -f yml文件名 -d
down
用來停止服務(wù)docker-compose down
exec
進(jìn)入容器docker-compose exec 服務(wù)id bash
ps
查看所有運(yùn)行的服務(wù)docker-compose ps
restart
重啟所有服務(wù)
加服務(wù)id 表示重啟單個服務(wù)docker-compose restart 服務(wù)id
rm
刪除服務(wù)
加服務(wù)id 刪除單個服務(wù)
-fv 強(qiáng)制刪除(v 包括數(shù)據(jù)卷)docker-compose -fv 服務(wù)id
start
用來啟動服務(wù)docker-compose start 服務(wù)id
stop
停止服務(wù)docker-compose stop 服務(wù)id
top
查看容器內(nèi)運(yùn)行的進(jìn)程docker-compose top 服務(wù)id
pause
暫停服務(wù)docker-compose pause 服務(wù)id
unpuase
開啟服務(wù)docker-compose unpause 服務(wù)id
logs
查看日志docker-compose logs 服務(wù)id
6.5、Docker 可視化工具 —— portainer
直接在dockerHub上面拉取鏡像啟動服務(wù)
docker pull portainer/portainer:1.24.2
docker run -d
-p 8000:8000
-p 9000:9000
--name=portainer
--restart=always
-v /var/run/docker.sock:/var/run/docker.sock
-v portainer_data:/data
portainer/portainer:1.24.2
直接訪問遠(yuǎn)程虛擬機(jī)的9000端口,注冊一個賬號,鏈接到本地虛擬機(jī)的服務(wù),就可以看到所提供的web可視化頁面了。文章來源:http://www.zghlxwxcb.cn/news/detail-821861.html
同樣的我們還可以將這個服務(wù)的啟動加到docker-componse當(dāng)中進(jìn)行啟動:文章來源地址http://www.zghlxwxcb.cn/news/detail-821861.html
# 加入服務(wù)
portainer:
container_name: portainer
image: portainer/portainer:1.24.2
ports:
- 8000:8000
- 9000:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
# 數(shù)據(jù)卷
volumes:
portainer_data:
到了這里,關(guān)于Docker與Docker-Compose詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!