使用 Docker-compose 搭建lnmp的詳細(xì)過程
服務(wù)編排:
應(yīng)用編排:
- 單機環(huán)境下:shell/python腳本
- 多機/集群環(huán)境下:ansible、saltstack、pubbet
docker容器編排:
- 單機:docker-compose
- 多機/集群:docker swarm,mesos+ marathon,kubernetes
一、Docker-Compose簡介
1.1 為什么使用 Docker-compose
我們知道使用一個Dockerfile模板文件可以定義一個單獨的應(yīng)用容器,如果需要定義多個容器就需要服務(wù)編排。服務(wù)編排有很多種技術(shù)方案,今天給大家介紹Docker 官方產(chǎn)品Docker Compose。
Dockerfile可以讓用戶管理一個單獨的應(yīng)用容器;而Compose則 允許用戶在一個模板(YAML格式) 中定義一組相關(guān)聯(lián)的應(yīng)用容器( 被稱為一個project,即項目),例如一個Web服務(wù)容器再加上后端的數(shù)據(jù)庫服務(wù)容器等。
1.2 Docker-compose概述
Docker-Compose項目是Docker官方的開源項目,負(fù)責(zé)實現(xiàn)對Docker容器集群的快速編排。
Docker-Compose將所管理的容器分為三層,分別是工程(project),服務(wù)(service) 以及容器(container)。Docker-Compose運行目錄下的所有文件(docker-compose.yml,extends文件或環(huán)境變量文件等)組成一個工程,若無特殊指定工程名即為當(dāng)前目錄名。一個工程當(dāng)中可包含多個服務(wù),每個服務(wù)中定義了容器運行的鏡像、參數(shù)、依賴。一個服務(wù)當(dāng)中可包括多個容器實例,Docker-Compose并沒有解決負(fù)載均衡的問題,因此需要借助其它工具實現(xiàn)服務(wù) 發(fā)現(xiàn)及負(fù)載均衡,比如Consul。
Docker-Compose的工程配置文件默認(rèn)為docker-compose. yml,可通過環(huán)境變量COMPOSE_FILE 或 -f 參數(shù)自定義配置文件,其定義了多個有依賴關(guān)系的服務(wù)及每個服務(wù)運行的容器。
使用一個Dockerfile模板文件,可以讓用戶很方便的定義一個單獨的應(yīng)用容器。在工作中,經(jīng)常會碰到需要多個容器相互配合來完成某項任務(wù)的情況。例如要實現(xiàn)一個Web項目,除了Web服務(wù)容器本身,往往還需要再加上后端的數(shù)據(jù)庫服務(wù)容器,甚至還包括負(fù)載均衡容器等。
Compose允許用戶通過一個單獨的docker-compose. yml模板文件(YAML格式)來定義一組相關(guān)聯(lián)的應(yīng)用容器為一個項目 (project) 。
Docker-Compose項目由Python編寫,調(diào)用Docker服 務(wù)提供的API來對容器進(jìn)行管理。因此,只要所操作的平臺支持Docker API,就可以在其上利用Compose來進(jìn)行編排管理。
二、compose 部署
2.1 Docker Compose 環(huán)境安裝
Docker Compose是 Docker 的獨立產(chǎn)品,因此需要安裝 Docker 之后再單獨安裝Docker Compose。
#方法一:下載。 curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose #安裝,給予執(zhí)行權(quán)限 chmod +x /usr/local/bin/docker-compose #查看版本 docker-compose --version ? #方法二:也可以提前下載好安裝包,之后上傳到系統(tǒng)中。 cd /opt/ ls chmod +x docker-compose mv docker-compose /usr/local/bin/ docker-compose --version
2.2 YAML文件格式及編寫注意事項
2.2.1 YAML文件格式
YAML是一種標(biāo)記語言,它可以很直觀的展示數(shù)據(jù)序列化格式,可讀性高。類似于 json 數(shù)據(jù)描述語言,語法比 json簡單的很多。
- YAML數(shù)據(jù)結(jié)構(gòu)通過縮進(jìn)來表示
- 連續(xù)的項目通過減號來表示
- 鍵值對用冒號分隔
- 數(shù)組用中括號 [ ] 括起來
- hash 用花括號 { } 括起來
#一個鍵如果有多個值。符號可以不縮進(jìn),但值要縮進(jìn)。 name: - zhangsan - lisi - wangwu ? name: - zhangsan - lisi - wangwu name: ["zhangsan", "lisi", "wangwu"]
2.2.2 使用YAML時需要注意下面事項
- 大小寫敏感
- 通過縮進(jìn)表示層級關(guān)系
- 不支持制表符tab鍵縮進(jìn)T只能使用空格縮進(jìn)
- 縮進(jìn)的空格數(shù)目不重要,只要相同層級左對齊,通常開頭縮進(jìn)2個空格
- 用 # 號注釋
- 符號字符后縮進(jìn)1個空格,如"冒號 : "、 "逗號 ,"、"橫杠 - "
- 如果包含特殊字符用單引號(' ')引起來會作為普通字符串處理,雙引號(" "):特殊字符作為本身想表示的意思
#雙引號示例:
name: "hello, \nworld"
最后name值是兩行內(nèi)容
name: hello,
world
?
#單引號示例:
name: 'hello, \nworld',只會作為普通字符 name: hello,\nworld2.2.3 數(shù)據(jù)結(jié)構(gòu)
#對象: 鍵值對的字典
animal: pets
?
#數(shù)組: 一組按次序排列的列表
- cat
- dog
- goldfish
?
#布爾值
debug: "true"
debug: "false"
?
?
#Yaml示例
languages: #序列的映射
- Java
- Golang
- Python
websites: #映射的映射(鍵的值,仍然是鍵值對)
Baidu: www.baidu.com
Wangyi: www.163.com
Souhu: www.souhu.com
#或者
languages: ["Java","Golong","Python"]
websites:
Baidu:
www.baidu.com
Wangyi:
www.163.com
Souhu:
www.souhu.com
#Json格式
{
languages: [
'Java',
'Golong',
'Python',
],
websites: [
Baidu: 'www.baidu.com',
Wangyi: 'www.163.com',
Souhu: 'www.souhu.com',
]
}2.3 Docker Compose 配置常用字段
| 字段 | 描述 |
|---|---|
| build | 使用Dockerfile構(gòu)建鏡像。指定Dockerfile 文件名,要指定Dockerfile文件需要在bui ld標(biāo)簽的子級標(biāo)簽中使用dockerfile標(biāo)簽指定 |
| dockerfile | 構(gòu)建鏡像上下文路徑(指定Dockerfile文件) |
| context | 可以是dockerfile 的路徑,或者是指向git 倉庫的url地址 |
| image | 指定鏡像 |
| command | 執(zhí)行命令,覆蓋容器啟動后默認(rèn)執(zhí)行的命令(類似于 docker run) |
| container_name | 指定容器名稱,由于容器名稱是唯一的, 如果指定自定義名稱,則無法scale指定容器數(shù)量(同一個鏡像指定多個容器數(shù)量) |
| deploy | 指定部署和運行服務(wù)相關(guān)的配置,只能在Swarm模式使用 |
| environment | 添加環(huán)境變量 |
| networks | 加入網(wǎng)絡(luò),引用頂級networks下條目 |
| networks_mode | 設(shè)置容器的網(wǎng)絡(luò)模式,如 host,bridge |
| ports | 暴露容器端口,與-p相同,但端口不能低于60 |
| volumes | 掛載一個宿主機目錄或命令卷到容器中,命令卷要在頂級volumes定義卷名稱 |
| volumes_from | 從另一個服務(wù)或容器掛載卷,可選參數(shù):ro 和:rw。僅版本'2' 支持 |
| hostname | 容器主機名 |
| sysctls | 在容器內(nèi)設(shè)置內(nèi)核參數(shù) |
| links | 連接到另外一個容器,- 服務(wù)名稱[:服務(wù)別名] (類似于容器互聯(lián)) |
| privileged | 用來給容器root權(quán)限,注意是不安全的,只有兩個值:true或false |
| restart | 設(shè)置重啟策略,never,always, no-failure, unless-stopped |
| never,默認(rèn)策略,在容器退出時不重啟容器。 | |
| on-failure,在容器非正常退出時(退出狀態(tài)非0),才會重啟容器。 | |
| on-failure:3,在容器非正常退出時重啟容器,最多重啟3次。 | |
| always,在容器退出時總是重啟容器。 | |
| unless-stopped,在容器退出時總是重啟容器,但是不考慮在Docker守護(hù)進(jìn)程啟動時就已經(jīng)停止了的容器。 | |
| depends_on | 在使用Compose時,最大的好處就是少打啟動命令,但一般項目容器啟動的順序是有要求的,如果直接從上到下啟動容器,可能會因為容器依賴問題而啟動失敗。例如在沒啟動數(shù)據(jù)庫容器的時候啟動應(yīng)用容器,應(yīng)用容器會因為找不到數(shù)據(jù)庫而退出。depends_on標(biāo)簽用于解決容器的依賴、啟動先后的問題。 |
(1)depends_on 指定依賴關(guān)系和啟動順序
php:
depends_on:
- apache
- mysql(2)使用鏡像
- 如果想使用已存在的鏡像,使用image。
- 如果想使用自己構(gòu)建的鏡像,使用build、dockerfile、context。
(3)引用網(wǎng)絡(luò)
在頂級層設(shè)置兩個網(wǎng)絡(luò)模式,在服務(wù)中引用不同的網(wǎng)絡(luò),可以實現(xiàn)網(wǎng)絡(luò)的隔離,和網(wǎng)絡(luò)的兼容。(可以理解為vlan)
networks:
lnmp
lamp
service:
nginx:
networks:lnmp
apache:
networks:lamp
mysql:
networks:
lnmp
lamp
php:
networks:
lnmp
lamp (4)命令卷
在 version 3,可以在頂級層中定義一個命令卷(例如:db-data),db-data 作為一個中間件,實際并不存在,只是為了做數(shù)據(jù)同步。(可以理解為vlan)
version: "3"
?
services:
?
nginx:
volumes:
- db_data:/var/lib/db
mysql:
volumes:
- db_data:/var/lib/backup/data
?
volumes: #在頂級層定義一個命令卷
db_data:2.4 Docker Compose 常用命令
| 命令 | 描述 |
|---|---|
| build | 重新構(gòu)建服務(wù) |
| ps | 列出容器 |
| up | 創(chuàng)建和啟動容器 |
| exec | 在容器里面執(zhí)行命令 |
| scale | 指定一個服務(wù)容器啟動數(shù)量 |
| top | 顯示容器進(jìn)程 |
| logs | 查看容器輸出 |
| down | 刪除容器、網(wǎng)絡(luò)、數(shù)據(jù)卷和鏡像 |
| stop/start/restart | 停止/啟動/重啟服務(wù) |
三、使用Docker-compose 搭建lnmp
3.1 Docker Compose 文件結(jié)構(gòu)
[root@zy7 compose_lnmp]# yum -y install tree
?
[root@zy7 compose_lnmp]# tree /opt/compose_lnmp/ -L 2
/opt/compose_lnmp/
├── docker-compose.yml
├── mysql #創(chuàng)建模板腳本
│ ├── Dockerfile #創(chuàng)建容器腳本
│ ├── my.cnf #復(fù)制配置文件
│ └── mysql-boost-5.7.20.tar.gz #復(fù)制源碼包
├── nginx
│ ├── Dockerfile
│ └── nginx-1.12.0.tar.gz
├── php
│ ├── Dockerfile
│ └── php-7.1.10.tar.bz2
└── wwwroot
├── index.html #站點網(wǎng)頁
├── wordpress
└── wordpress-4.9.4-zh_CN.tar.gz3.2 準(zhǔn)備依賴文件,配置nginx
#創(chuàng)建項目目錄 compose_lnmp; #創(chuàng)建服務(wù)子目錄 [root@zy7 ~]# mkdir /opt/compose_lnmp/ [root@zy7 ~]# cd /opt/compose_lnmp [root@zy7 compose_lnmp]# mkdir nginx mysql php wwwroot ? #上傳wordpress軟件包,準(zhǔn)備測試頁面 [root@zy7 compose_lnmp]# cd /opt/compose_nginx/wwwroot/ [root@zy7 wwwroot]# ls wordpress-4.9.4-zh_CN.tar.gz [root@zy7 wwwroot]# tar xf wordpress-4.9.4-zh_CN.tar.gz [root@zy7 wwwroot]# echo "<h1>this is test web</h1>" > /opt/compose_lnmp/wwwroot/index.html ? ? #上傳nginx軟件包 [root@zy7 compose_lnmp]# cd nginx/ [root@zy7 nginx]# ls nginx-1.12.0.tar.gz ? ? #編寫nginx的Dockerfile文件 [root@zy7 nginx]# vim Dockerfile #基于基礎(chǔ)鏡像 FROM centos:7 #用戶信息 MAINTAINER this is nginx image <yuji> #添加環(huán)境包 RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make RUN useradd -M -s /sbin/nologin nginx #上傳nginx軟件壓縮包,并解壓 ADD nginx-1.12.0.tar.gz /usr/local/src/ #指定工作目錄 WORKDIR /usr/local/src/nginx-1.12.0 RUN ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module && make -j8&& make install ENV PATH /usr/local/nginx/sbin:$PATH #修改nginx配置文件 RUN sed -i 's/#charset koi8-r;/charset utf-8;/' /usr/local/nginx/conf/nginx.conf \ && sed -i '45 s/index index.html index.htm;/index index.html index.php;/' /usr/local/nginx/conf/nginx.conf \ && sed -i '65,71 s/#//' /usr/local/nginx/conf/nginx.conf \ && sed -i 's/fastcgi_pass 127.0.0.1:9000;/fastcgi_pass 172.18.0.30:9000;/' /usr/local/nginx/conf/nginx.conf \ && sed -i 's#/scripts#/usr/local/nginx/html#' /usr/local/nginx/conf/nginx.conf #也可以提前將修改好nginx.conf,放入nginx目錄下,之后使用ADD指令復(fù)制到鏡像中。則可避免在鏡像中修改。 #暴露端口 EXPOSE 80 EXPOSE 443 #前臺啟動nginx ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ]
3.3 配置mysql
#進(jìn)入mysql子目錄 [root@zy7 ~]# cd /opt/compose_lnmp/mysql/ #將mysql包上傳到此目錄 [root@zy7 mysql]# ls mysql-boost-5.7.20.tar.gz ? #編寫mysql的Dockerfile文件 [root@zy7 mysql]# vim Dockerfile FROM centos:7 MAINTAINER this is mysql image <zhi> RUN yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make RUN useradd -M -s /sbin/nologin mysql ADD mysql-boost-5.7.20.tar.gz /usr/local/src/ WORKDIR /usr/local/src/mysql-5.7.20/ RUN cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DSYSCONFDIR=/etc \ -DSYSTEMD_PID_DIR=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_BOOST=boost \ -DWITH_SYSTEMD=1 && make -j8 && make install RUN chown -R mysql:mysql /usr/local/mysql/ ADD my.cnf /etc/ RUN chown mysql:mysql /etc/my.cnf ENV PATH /usr/local/mysql/bin:/usr/local/mysql/lib:$PATH WORKDIR /usr/local/mysql/ RUN bin/mysqld \ --initialize-insecure \ --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data RUN cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ EXPOSE 3306 CMD /usr/local/mysql/bin/mysqld
編寫myslq主配置文件my.cnf
#配置myslq主配置文件my.cnf(用來復(fù)制到容器) [root@zy7 mysql]# vim my.cnf [client] port = 3306 socket = /usr/local/mysql/mysql.sock ? [mysql] port = 3306 socket = /usr/local/mysql/mysql.sock ? [mysqld] user = mysql basedir = /usr/local/mysql datadir = /usr/local/mysql/data port = 3306 character_set_server=utf8 pid-file = /usr/local/mysql/mysqld.pid socket = /usr/local/mysql/mysql.sock server-id = 1 ? sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
3.4 配置php
[root@zy7 compose_lnmp]# cd /opt/compose_lnmp/php/ #將php包上傳 [root@zy7 php]# ls php-7.1.10.tar.bz2 ? #編寫php的Dockerfile [root@zy7 php]# vim Dockerfile FROM centos:7 MAINTAINER this is php image <yuji> RUN yum -y install gd \ libjpeg libjpeg-devel \ libpng libpng-devel \ freetype freetype-devel \ libxml2 libxml2-devel \ zlib zlib-devel \ curl curl-devel \ openssl openssl-devel \ gcc gcc-c++ make pcre-devel RUN useradd -M -s /sbin/nologin nginx ADD php-7.1.10.tar.bz2 /usr/local/src/ WORKDIR /usr/local/src/php-7.1.10 RUN ./configure \ --prefix=/usr/local/php \ --with-mysql-sock=/usr/local/mysql/mysql.sock \ --with-mysqli \ --with-zlib \ --with-curl \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-openssl \ --enable-fpm \ --enable-mbstring \ --enable-xml \ --enable-session \ --enable-ftp \ --enable-pdo \ --enable-tokenizer \ --enable-zip && make && make install ENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATH ? RUN \cp /usr/local/src/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini \ && sed -i 's#mysqli.default_socket =#mysqli.default_socket = /usr/local/mysql/mysql.sock#' /usr/local/php/lib/php.ini \ && sed -i '939 s#;date.timezone =#date.timezone = Asia/Shanghai#' /usr/local/php/lib/php.ini ? RUN \cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf \ && sed -i '17 s/^;//' /usr/local/php/etc/php-fpm.conf ? RUN \cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf \ && sed -i 's#user = nobody#user = nginx#' /usr/local/php/etc/php-fpm.d/www.conf \ && sed -i 's#group = nobody#group = nginx#' /usr/local/php/etc/php-fpm.d/www.conf \ && sed -i 's#listen = 127.0.0.1:9000#listen = 172.18.0.30:9000#' /usr/local/php/etc/php-fpm.d/www.conf ? #也可以提前準(zhǔn)備好php.ini、php-fpm.conf、www.conf這三個文件,放入php目錄下,之后使用ADD指令復(fù)制到鏡像中 ? EXPOSE 9000 ENTRYPOINT [ "/usr/local/php/sbin/php-fpm", "-F" ]
3.5 編寫docker-compose.yml
#先拉取鏡像centos:7
[root@zy7 compose_lnmp]# docker pull centos:7
?
[root@zy7 compose_lnmp]# vim /opt/compose_lnmp/docker-compose.yml
#使用版本2(3版本不支持指令volumes_from)
version: '2'
?
#使用services定義服務(wù)
services:
#配置nginx服務(wù)
nginx:
#設(shè)置容器名
container_name: nginx
#設(shè)置主機名為nginx
hostname: nginx
#使用dockerfile創(chuàng)建鏡像。Dockerfile文件在當(dāng)前目錄的nginx目錄下,文件名為Dockerfile
build:
#指定Dockerfile文件所在位置
context: ./nginx
dockerfile: Dockerfile
#映射端口
ports:
- 1315:80
- 1316:443
#加入到lnmp網(wǎng)絡(luò)中,使用ip172.18.0.0.10
networks:
lnmp:
ipv4_address: 172.18.0.10
#將當(dāng)前目錄下的wwwroot目錄掛載到容器的/usr/local/nginx/html目錄
volumes:
- ./wwwroot/:/usr/local/nginx/html
#配置服務(wù)mysql
mysql:
container_name: mysql
hostname: mysql
build:
context: ./mysql
dockerfile: Dockerfile
ports:
- 3306:3306
networks:
lnmp:
ipv4_address: 172.18.0.20
#設(shè)置/usr/local/mysql目錄為數(shù)據(jù)卷
volumes:
- /usr/local/mysql
#配置服務(wù)php
php:
hostname: php
build:
context: ./php
dockerfile: Dockerfile
container_name: php
ports:
- 9000:9000
networks:
lnmp:
ipv4_address: 172.18.0.30
#從nginx容器和mysql容器獲取數(shù)據(jù)卷
volumes_from:
- nginx
- mysql
#php容器需要在nginx和mysql之后啟動
depends_on:
- nginx
- mysql
#php和容器nginx,容器mysql連接
links:
- nginx
- mysql
#設(shè)置網(wǎng)絡(luò)為自定義網(wǎng)絡(luò)
#配置網(wǎng)絡(luò)模式和網(wǎng)絡(luò)名
networks:
#設(shè)置網(wǎng)絡(luò)名lnmp
lnmp:
#網(wǎng)絡(luò)模式為bridge橋接模式
driver: bridge
ipam:
config:
#使用的網(wǎng)段為172.18.0.0/16
- subnet: 172.18.0.0/16運行docker-compose
#在工作目錄使用此命令。 #-f: --file-name, 指定模板文件。默認(rèn)為docker-compose.yml #-p: --project-name NAME ,指定項目名稱,默認(rèn)使用目錄名 #-d: 在后臺運行 [root@zy7 compose_lnmp]# docker-compose -f docker-compose.yml up -d ? #在工作目錄,使用 docker-compose ps 可以看到啟動的容器狀態(tài) [root@zy7 compose_lnmp]# docker-compose ps
進(jìn)入mysql容器,進(jìn)行用戶授權(quán)
#進(jìn)入mysql容器,進(jìn)行用戶授權(quán)。 [root@zy7 mysql]# docker exec -it mysql /bin/bash [root@mysql mysql]# mysql ? mysql> create database wordpress; ? mysql> grant all privileges on wordpress.* to 'wordpress'@'%' identified by 'abc123'; ? mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123'; ? mysql> flush privileges;
3.6 瀏覽器訪問測試
http://192.168.126.27:1315/wordpress/index.php #在yaml文件中nginx端口映射為1315
http://192.168.126.27:1315/ #直接訪問,可以看見創(chuàng)建的測試網(wǎng)頁
到此這篇關(guān)于使用 Docker-compose 搭建lnmp的文章就介紹到這了,更多相關(guān)Docker-compose 搭建lnmp內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
centos7搭建docker私人倉庫的方法(kubernetes)
這篇文章主要介紹了centos7搭建docker私人倉庫的方法(kubernetes),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
在Docker容器中使用iptables時的最小權(quán)限的開啟方法
這篇文章主要介紹了在Docker容器中使用iptables時的最小權(quán)限的開啟方法的相關(guān)資料,需要的朋友可以參考下2017-01-01
Docker搭建Redis主從復(fù)制的實現(xiàn)步驟
本文主要介紹了Docker搭建Redis主從復(fù)制的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
Docker?創(chuàng)建centos容器集群并實現(xiàn)遠(yuǎn)程登錄功能
這篇文章主要介紹了Docker?創(chuàng)建centos容器集群并實現(xiàn)遠(yuǎn)程登錄,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
ssh 直接登錄docker容器的操作方法(不用通過宿主機進(jìn)入)
這篇文章主要介紹了ssh 直接登錄docker容器的操作方法(不用通過宿主機進(jìn)入),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06

