免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
docker學(xué)習(xí)筆記

docker簡介

docker安裝

dockerRun流程

docker安裝mysql

docker安裝nginx

docker容器數(shù)據(jù)卷技術(shù)

dockerFile

部署redis集群

docker compose

1.docker簡介

1.docker官網(wǎng):https://www.docker.com/

2.docker是什么

? Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的鏡像中,然后發(fā)布到任何流行的 LinuxWindows 機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。

? Docker采用 C/S架構(gòu) ,Docker daemon 作為服務(wù)端接受來自客戶的請(qǐng)求,并處理這些請(qǐng)求(創(chuàng)建、運(yùn)行、分發(fā)容器)。 客戶端和服務(wù)端既可以運(yùn)行在一個(gè)機(jī)器上,也可通過 socket 或者restful API 來進(jìn)行通信。

docker主要分為3部分組成:客戶端、服務(wù)器、倉庫;客戶端命令docker內(nèi)部的守護(hù)進(jìn)程執(zhí)行結(jié)果,并將結(jié)果返回給客戶端。

docker build :構(gòu)建容器

docker pull : 拉取容器

docker run : 運(yùn)行容器

docker daemon :docker守護(hù)線程

docker鏡像(image):其實(shí)就是模板,可以通過這個(gè)模板來創(chuàng)建容器服務(wù),通過鏡像可以創(chuàng)建多個(gè)容器,最終服務(wù)運(yùn)行或者項(xiàng)目運(yùn)行在容器中

容器(container):docker利用容器技術(shù),獨(dú)立運(yùn)行一個(gè)或者一組應(yīng)用,通過鏡像來創(chuàng)建的

倉庫(repository):倉庫是存放鏡像的地方,分為共有倉庫和私有倉庫

3.docker能干什么

? 1.更快速的交付和部署
? 2.更便捷的升級(jí)或擴(kuò)縮容
? 3.更簡單的系統(tǒng)運(yùn)維
? 4.更高效的計(jì)算資源利用

4.docker與虛擬機(jī)對(duì)比

docker 虛擬機(jī)
操作系統(tǒng) 與宿主機(jī)共享OS 在宿主機(jī)OS上運(yùn)行
存儲(chǔ)大小 鏡像小,便于存儲(chǔ)和傳輸 鏡像龐大(如centos的vmdk至少900多M)
運(yùn)行性能 幾乎無額外性能損失 操作系統(tǒng)額外的cpu,內(nèi)存消耗大
移植性 輕便靈活,適用于Linux 笨重,與虛擬化技術(shù)耦合度高
硬件親和性 面向開發(fā)人員 面向硬件運(yùn)維者

docker有比虛擬機(jī)更少的抽象層

docker利用的是宿主機(jī)的內(nèi)核,而不需要Guest OS

2.docker安裝

#系統(tǒng)內(nèi)核查看
[root@localhost ~]# uname -r
#系統(tǒng)版本查看
[root@localhost ~]# cat /etc/os-release
#安裝需要的安裝包
yum install -y yum-utils
# 設(shè)置阿里云的鏡像倉庫
yum-config-manager 	--add-repo 	https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo	
# 更新yum的軟件包
[root@localhost /]# yum makecache fast
#安裝最新版本的 Docker Engine-Community 和 containerd,
yum install docker-ce docker-ce-cli containerd.io
#啟動(dòng)docker
[root@localhost /]# systemctl start docker

#配置阿里云鏡像加速,注冊(cè)阿里云的賬號(hào),然后產(chǎn)品->容器與中間件->容器鏡像服務(wù) ACR->管理控制臺(tái)->鏡像加速器->CentOS
# 按照上面的步驟配置
[root@localhost ~]# mkdir -p /etc/docker
[root@localhost ~]# tee /etc/docker/daemon.json <<-'EOF'
 {
   "registry-mirrors": ["https://fz0dvm3j.mirror.aliyuncs.com"]
 }
 EOF
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

3.dockerRun流程

# 啟動(dòng)docker完成,run  hello-world
[root@localhost /]# docker run hello-world
#沒有尋找到這個(gè)鏡像
Unable to find image 'hello-world:latest' locally  
#這里的pull就是去遠(yuǎn)程拉取鏡像
latest: Pulling from library/hello-world 
#拉取完成
0e03bdcc26d7: Pull complete  
Digest: sha256:e7c70bb24b462baa86c102610182e3efcb12a04854e8c582838d92970a09f323
Status: Downloaded newer image for hello-world:latest
Hello from Docker! 

從上面的run流程可以歸納出這樣的一張圖:

鏡像刪除:docker rmi hello-world(鏡像名)

刪除正在運(yùn)行的容器:docker rmi -f hello-world(鏡像名)

刪除容器并刪除容器掛載的數(shù)據(jù)卷:docker rm -v hello-world(鏡像名)

刪除所有的容器:docker rm -f $(docker ps -aq)

查詢所有的容器:docker container ls --all

4.docker安裝mysql

# 拉取官方mysql, 指定版本docker pull mysql:5.7,也可以直接使用docker run mysql,參考上面run的流程,默認(rèn)是最新版本 mysql:latest
[root@localhost ~]# docker pull mysql:5.7
# 查看安裝了哪些鏡像
[root@localhost ~]# docker images
# 安裝完成后,運(yùn)行容器
# 參數(shù)說明:--name 給容器命名
# -p 3306:3306 :映射容器服務(wù)的 3306 端口到宿主機(jī)的 3306 端口,外部主機(jī)可以直接通過 宿主機(jī)ip:3306 訪問到 MySQL 的服務(wù)。
# MYSQL_ROOT_PASSWORD=123456:設(shè)置 MySQL 服務(wù) root 用戶的密碼。
[root@localhost ~]# docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
# docker ps 命令查看是否安裝成功
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
a40c92638f4d        mysql               "docker-entrypoint.s…"   22 seconds ago      Up 20 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-test
# 進(jìn)入容器
[root@localhost ~]# docker exec -it mysql-test bash
# 啟動(dòng)mysql ,root的密碼為123456
root@a40c92638f4d:/# mysql -u root -p

進(jìn)入容器的方式:

# 進(jìn)入容器后開啟一個(gè)新的終端,可以在里面操作
docker exec -it mysql-test bash
# 進(jìn)入正在執(zhí)行當(dāng)前的代碼,不會(huì)啟動(dòng)新的進(jìn)程
docker attach 容器id  

退出當(dāng)前容器,可以使用ctrl+p+q,不關(guān)閉容器退出,docker inspect (容器id),查看容器的所有信息;

退出容器:exit

停止容器:docker stop <容器 ID>

停止的容器重啟:docker restart <容器 ID>

5.docker 安裝nginx

[root@localhost ~]# docker pull nginx
# 啟動(dòng)nginx
# 參數(shù)說明:
# -p 8080:80: 端口進(jìn)行映射,將本地 8080 端口映射到容器內(nèi)部的 80 端口。
# -d nginx: 設(shè)置容器在在后臺(tái)一直運(yùn)行。
[root@localhost ~]# docker run --name nginx-test -p 8080:80 -d nginx

在瀏覽器上查看(出現(xiàn)這個(gè)頁面即表示成功):

6.docker容器數(shù)據(jù)卷技術(shù)

在項(xiàng)目中,對(duì)數(shù)據(jù)的要求是能持久化的,容器之間希望有可能共享數(shù)據(jù);為了能把數(shù)據(jù)保存在docker中,就產(chǎn)生了數(shù)據(jù)卷技術(shù)。

測試數(shù)據(jù)卷

# 命名為第一個(gè)窗口
[root@localhost ~]# docker pull centos
# 創(chuàng)建測試目錄
[root@localhost ~]# mkdir /home/test
# 掛載   -v  /home/test:表示宿主機(jī)目錄   /home:表示容器的目錄
[root@localhost test]# docker run -it -v /home/test:/home centos /bin/bash
# 另起一個(gè)窗口,命名為第二個(gè)窗口,查看是否掛載成功
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f362100fe4ab        centos              "/bin/bash"         3 minutes ago       Up 3 minutes                            happy_thompson
[root@localhost ~]# docker inspect f362100fe4ab
# 這是與掛載有關(guān)的內(nèi)容(默認(rèn)有掛載)
"Mounts": [
            {
                "Type": "bind",
                "Source": "/home/test",
                "Destination": "/home",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ]
# 在第一個(gè)窗口,掛載成功就進(jìn)入了centos的鏡像中
[root@f362100fe4ab /]# ls 
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@f362100fe4ab /]# cd /home
# 可以看到鏡像里面的home目錄下什么內(nèi)容都沒有,新建一個(gè)Test.java文件
[root@f362100fe4ab home]# ls
[root@f362100fe4ab home]# touch Test.java
# 第二個(gè)窗口的掛載test掛載的目錄下,可以看到有也有一個(gè)Test.java的文件
[root@localhost ~]# cd /home/test
[root@localhost test]# ls
Test.java

如果在容器外(即第二個(gè)窗口)修改內(nèi)容,在容器里還是可以同步看到修改的內(nèi)容,就算容器關(guān)閉了,在外面修改了,還是會(huì)同步到容器里的。

測試mysql數(shù)據(jù)永久化

[root@localhost home]# mkdir mysql
[root@localhost home]# ls
mysql  test
[root@localhost home]# cd mysql
[root@localhost mysql]# mkdir conf
[root@localhost mysql]# cd conf
# 掛載并啟動(dòng) -v:虛擬機(jī)目錄:容器目錄(掛載目錄)	
[root@localhost test]# docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql-test mysql

# 在docker虛擬機(jī)內(nèi)掛載mysql的data目錄對(duì)應(yīng)的掛載目錄下可以看到里面有了mysql的文件
[root@localhost test]# cd /home/mysql/data
[root@localhost data]# ls
auto.cnf       client-cert.pem    ib_logfile0   performance_schema  undo_001
binlog.000001  client-key.pem     ib_logfile1   private_key.pem     undo_002
binlog.000002  #ib_16384_0.dblwr  ibtmp1        public_key.pem
binlog.index   #ib_16384_1.dblwr  #innodb_temp  server-cert.pem
ca-key.pem     ib_buffer_pool     mysql         server-key.pem
ca.pem         ibdata1            mysql.ibd     sys

關(guān)閉防火墻:systemctl stop firewalld

打開navicat 連接數(shù)據(jù)庫并測試:

新建一個(gè)數(shù)據(jù)庫:docker_test01,下圖可以看到,在data文件下多了一個(gè)docker_test01的文件

如果我們將容器刪除,發(fā)現(xiàn)我們掛載到本地的數(shù)據(jù)卷依舊沒有丟失;這就實(shí)現(xiàn)了我們?nèi)萜鲾?shù)據(jù)持久化的功能;

7.DockerFile

Dockerfile 是一個(gè)用來構(gòu)建鏡像的文本文件,文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說明。Docker就是通過讀取Dockerfile中的指令自動(dòng)生成映像;

使用dockerfile定制一個(gè)鏡像

# 在home下創(chuàng)建一個(gè)dockerfile_test01的文件夾
[root@localhost home]# mkdir dockerfile_test01
[root@localhost home]# cd dockerfile_test01/
[root@localhost dockerfile_test01]# ls
[root@localhost dockerfile_test01]# vi dockerfile
# 編寫dockerfile的命令
FROM centos:latest

VOLUME ["volume01","volume02"]
CMD echo "-------------centos end------"

CMD /bin/bash
# 構(gòu)建鏡像
# -f:表示文件的地址(默認(rèn)是dockerfile,可以不寫)  -t target,生成的意思,  .表示生成在當(dāng)前目錄下
[root@localhost dockerfile_test01]# docker build -f dockerfile -t charon/centos .
Sending build context to Docker daemon  2.048kB
Step 1/4 : FROM centos:latest
 ---> 0d120b6ccaa8
Step 2/4 : VOLUME ["volume01","volume02"]
 ---> Running in cf7a5a93a2a4
Removing intermediate container cf7a5a93a2a4
 ---> f126dd1ad5d2
Step 3/4 : CMD echo "-------------centos end------"
 ---> Running in c2f6af5454a7
Removing intermediate container c2f6af5454a7
 ---> 5bfaded00378
Step 4/4 : CMD /bin/bash
 ---> Running in f264651260c2
Removing intermediate container f264651260c2
 ---> 5c32c0037c47
Successfully built 5c32c0037c47
Successfully tagged charon/centos:latest

# dockerfile構(gòu)建成功后,查看容器內(nèi)容
[root@localhost data]# docker inspect d8c483d4873d(為CONTAINER ID )

8.部署redis集群

# 建立redis網(wǎng)卡
[root@localhost ~]# docker network create redis --subnet 172.25.0.0/16
abc2557e81e375c4f354a015685f6ec0d29b6abc40ec841bcbd6005e797a4c92
# 查看所有的網(wǎng)絡(luò)
[root@localhost ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
73ee4682decf        bridge              bridge              local
617ed0ba638f        host                host                local
310d6730eaf1        none                null                local
abc2557e81e3        redis               bridge              local
# 查看redis的網(wǎng)卡信息
[root@localhost redis]# docker network inspect redis
[
    {
        "Name": "redis",
        "Id": "abc2557e81e375c4f354a015685f6ec0d29b6abc40ec841bcbd6005e797a4c92",
        "Created": "2020-12-07T22:01:35.743996656+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.25.0.0/16"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]
[root@localhost redis]# cd /
# 創(chuàng)建redis腳本節(jié)點(diǎn)(這里使用三主三從,reids集群至少要三個(gè)主節(jié)點(diǎn))
[root@localhost /]# for port in $(seq 1 6);  do  mkdir -p /redis/node-${port}/conf
 touch /redis/node-${port}/conf/redis.conf
 cat << EOF >/redis/node-${port}/conf/redis.conf
 port 6379 
 bind 0.0.0.0
 cluster-enabled yes 
 cluster-config-file nodes.conf
 cluster-node-timeout 5000
 cluster-announce-ip 172.25.0.1${port}
 cluster-announce-port 6379
 cluster-announce-bus-port 16379
 appendonly yes
 EOF
 done
[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  mydata  opt  proc  redis  root  run  sbin  srv  sys  tmp  usr  var
[root@localhost /]# cd mydata/redis
[root@localhost redis]# ls
node-1  node-2  node-3  node-4  node-5  node-6
[root@localhost redis]# cd /
# 啟動(dòng)redis的腳本
[root@localhost /]#  for port in $(seq 1 6);do docker run -p 637${port}:6379 --name redis-${port} -v /mydata/redis/node-${port}/data:/data -v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf -d --net redis --ip 172.25.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
done
# 可以使用 docker ps -a  查看啟動(dòng)的redis

# 進(jìn)入redis-1容器
[root@localhost /]# docker exec -it redis-1 /bin/sh
# 創(chuàng)建集群 (--cluster-replicas 1 :為集群中的每個(gè)主節(jié)點(diǎn)創(chuàng)建一個(gè)從節(jié)點(diǎn))
/data # redis-cli --cluster create 172.25.0.11:6379 172.25.0.12:6379 172.25.0.13:6379 172.25.0.14:6379 172.25.0.15:6379 172.25.0.16:6379 --cluster-replicas 1

# 連接集群(redis-cli單機(jī),-c是集群)
/data # redis-cli -c
# 可以看到三主三從一一對(duì)應(yīng)的
127.0.0.1:6379> cluster nodes
b3a8f84b35f7efbac7058ae39fd7119d3da76e0b 172.25.0.11:6379@16379 myself,master - 0 1607353015000 1 connected 0-5460
aac8da4b1adcf81ed1daa7eab82c0f7e74f38e43 172.25.0.16:6379@16379 slave b21c59b5a169ede19bdacb6aa0ee563678e2d4cd 0 1607353015556 6 connected
b21c59b5a169ede19bdacb6aa0ee563678e2d4cd 172.25.0.12:6379@16379 master - 0 1607353016583 2 connected 5461-10922
796f01b60f61f75775a83e39fd173f2bb2d26249 172.25.0.15:6379@16379 slave b3a8f84b35f7efbac7058ae39fd7119d3da76e0b 0 1607353017095 5 connected
375a629a1dd989f47a1522ddf8f18930d56b7e92 172.25.0.14:6379@16379 slave 065734d0bc0a105639b91fd25310e7f6ef13a979 0 1607353016583 4 connected
065734d0bc0a105639b91fd25310e7f6ef13a979 172.25.0.13:6379@16379 master - 0 1607353016584 3 connected 10923-16383

# 往redis中設(shè)置一個(gè)值,可以看到,現(xiàn)在是存儲(chǔ)在11這臺(tái)redis上的
172.25.0.13:6379> set charon 111
-> Redirected to slot [1403] located at 172.25.0.11:6379
OK
# 另打開一個(gè)窗口,關(guān)閉掉redis-1的容器   docker stop redis-1
# 重啟redis集群
/data # redis-cli -c
# get a的值,可以看到,是從15這個(gè)redis上獲取的,在我這里,15為11的從redis
127.0.0.1:6379> get charon
-> Redirected to slot [1403] located at 172.25.0.15:6379
"111"

9.docker compose

compose是用于定義和運(yùn)行多容器docker應(yīng)用程序的工具。通過compose,可以使用yml文件來配置應(yīng)用程序需要的所有服務(wù),然后用一個(gè)命令,就可以從yml文件配置中創(chuàng)建并啟動(dòng)所有的服務(wù)。

compose使用的三個(gè)步驟:

  1. 使用dockerfile定義應(yīng)用程序的環(huán)境
  2. 使用docker-compsoe.yml定義構(gòu)成應(yīng)用程序的服務(wù),這樣他們可以在隔離環(huán)境中一起運(yùn)行
  3. 執(zhí)行docker-compose up 命令來啟動(dòng)并運(yùn)行整個(gè)應(yīng)用程序

compose安裝

# 在github上下載,但是很慢,不推薦
[root@localhost ~]# curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 這種方式下載很快
[root@localhost ~]# curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 授權(quán)
[root@localhost bin]# chmod +x /usr/local/bin/docker-compose
# 能夠看到版本信息,表示安裝成功
[root@localhost bin]# docker-compose version
docker-compose version 1.25.5, build 8a1c60f6
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

配置

[root@localhost home]# mkdir composetest
[root@localhost home]# cd composetest
[root@localhost composetest]# touch app.py
# 編輯內(nèi)容
[root@localhost composetest]# vi app.py 

import time

import redis
from flask import Flask

app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)


def get_hit_count():
    retries = 5
    while True:
        try:
            return cache.incr('hits')
        except redis.exceptions.ConnectionError as exc:
            if retries == 0:
                raise exc
            retries -= 1
            time.sleep(0.5)


@app.route('/')
def hello():
    count = get_hit_count()
    return 'Hello World! I have been seen {} times.\n'.format(count)
    
# 創(chuàng)建requirements.txt文件
root@localhost composetest]# vi requirements.txt 
#requirements.txt文件內(nèi)容
flask
redis
# 創(chuàng)建dockerfile文件
[root@localhost composetest]# vi dockerfile
# dockerfile文件內(nèi)容
FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["flask", "run"]
# 創(chuàng)建 docker-compose.yml
[root@localhost composetest]# vi docker-compose.yml
# yaml 配置
version: '3'
services:
  web:
    build: .
    ports:
     - "5000:5000"
  redis:
    image: "redis:alpine"
    
# 啟動(dòng)應(yīng)用程序,這一步需要的時(shí)間挺長
[root@localhost composetest]# docker-compose up -d
# 安裝完成后,查看網(wǎng)絡(luò)
[root@localhost composetest]# docker network ls
NETWORK ID          NAME                  DRIVER              SCOPE
2cb20a237d9f        bridge                bridge              local
c1ed15f1d7c0        composetest_default   bridge              local
617ed0ba638f        host                  host                local
310d6730eaf1        none                  null                local
abc2557e81e3        redis                 bridge              local
# 查看composetest_default的信息,從下面的Containers可以看到,redis和web都在同一個(gè)容器下
[root@localhost composetest]# docker network inspect composetest_default
[
    {
        "Name": "composetest_default",
        "Id": "c1ed15f1d7c0dc9b0ef1510242279478d186e01a164fe6999208d0fc8e3ac994",
        "Created": "2020-12-09T22:43:23.963784858+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "0aaadf14519bf27d01d8531f3c2a67f2cc3f6509374883a789724881fc117837": {
                "Name": "composetest_web_1",
                "EndpointID": "b42e5f64bdfdfa2227499f89ba7a18c10ef07bdfc36c8e1d5affef23d93b884e",
                "MacAddress": "02:42:ac:12:00:03",
                "IPv4Address": "172.18.0.3/16",
                "IPv6Address": ""
            },
            "215f9ec5e5c15c0399374102550c5c3d6437385005050ebe6018e1aa4f6d3055": {
                "Name": "composetest_redis_1",
                "EndpointID": "a3700748c83e5a6a342b0f01a1fd9cbb72d1820c9eb1abdf97909c7073ca7b5b",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "default",
            "com.docker.compose.project": "composetest",
            "com.docker.compose.version": "1.25.5"
        }
    }
]
# 訪問
[root@localhost composetest]# curl http://localhost:5000
Hello World! I have been seen 1 times.
[root@localhost composetest]# curl http://localhost:5000
Hello World! I have been seen 2 times.
[root@localhost composetest]# curl http://localhost:5000
Hello World! I have been seen 3 times.

在瀏覽器中也可以使用ip+端口訪問

默認(rèn)的服務(wù)名格式:文件名_格式名_1(number)

compose自動(dòng)維護(hù)了一個(gè)網(wǎng)絡(luò),項(xiàng)目中的內(nèi)容都是同一個(gè)網(wǎng)絡(luò)(域名)下,如上面app.py中配置的,cache = redis.Redis(host='redis', port=6379),這里的reids的ip(域名)都是redis,以后就可以通過redis:6379也可以訪問。

docker部署項(xiàng)目實(shí)戰(zhàn)請(qǐng)移步 : https://www.cnblogs.com/pluto-charon/p/14381600.html

參考文檔:

https://www.runoob.com/docker/centos-docker-install.html (docker的參考手冊(cè))

https://www.cnblogs.com/zuxing/articles/8780661.html

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Docker學(xué)習(xí)筆記之--借助Docker Compose進(jìn)行多容器部署(環(huán)境:centos7)
Docker 深入淺出
Docker 部署前后端項(xiàng)目
Docker容器學(xué)習(xí)梳理--應(yīng)用程序容器環(huán)境部署
docker -v 和Dockerfile 中VOLUME 區(qū)別
Docker的入門及使用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服