docker安裝與docker-compose安裝配置nginx過程
都是以前部署環(huán)境時(shí)的一些隨筆,和各位分享一下
本次的系統(tǒng)環(huán)境是centos7.6
一、安裝docker
1、Docker 要求 CentOS 系的內(nèi)核版本高于 3.10 ,查看本頁面的前提條件來驗(yàn)證你的CentOS 版本是否支持 Docker 。
通過 uname -r 命令查看你當(dāng)前的內(nèi)核版本
$ uname -r
2、使用 root 權(quán)限登錄 Centos。確保 yum 包更新到最新。
sudo yum update
3、卸載舊版本(如果安裝過舊版本的話)
看下面第二部分??
4、安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個(gè)是devicemapper驅(qū)動(dòng)依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、設(shè)置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6、可以查看所有倉庫中所有docker版本,并選擇特定版本安裝
yum list docker-ce --showduplicates | sort -r

7、安裝docker
sudo yum install docker-ce
#由于repo中默認(rèn)只開啟stable倉庫,故這里安裝的是最新穩(wěn)定版17.12.0

8、啟動(dòng)并加入開機(jī)啟動(dòng)
sudo systemctl start docker sudo systemctl enable docker
9、驗(yàn)證安裝是否成功(有client和service兩部分表示docker安裝啟動(dòng)都成功了)
docker version

二、遇到的問題
1、因?yàn)橹耙呀?jīng)安裝過舊版本的docker,在安裝的時(shí)候報(bào)錯(cuò)如下:
Transaction check error: file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64 file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64 file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64 file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
2、卸載舊版本的包
sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

3、再次安裝docker
sudo yum install docker-ce
OK 后續(xù)查看 下docker version 即可
三、docker-compose安裝
1、安裝 Docker Compose 可以通過下面命令自動(dòng)下載適應(yīng)版本的 Compose,并為安裝腳本添加執(zhí)行權(quán)限
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
創(chuàng)建軟連接,不然通過命令行查看docker-compose -version不會(huì)輸出對(duì)應(yīng)的版本
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
2、獲取nginx 鏡像
docker pull nginx

拉完先放著,不用管它了
3、配置docker-compose
建議可以現(xiàn)在本地寫好之后上傳到環(huán)境上 我這邊是上傳到/mnt文件夾下
新建一個(gè)docker-compose.yaml 文件,書寫配置,注意ports和volumes 自己要對(duì)應(yīng)
# 使用說明 V3.2.0
# docker-compose up
version: '3.0'
services:
nginx:
hostname: nginx
environment:
TZ: Asia/Shanghai
restart: always
logging:
driver: "json-file"
options:
max-size: "500m"
container_name: docker-nginx
image: nginx:latest
ports:
- 80:80
- 443:443
- 8888:8888
- 8889:8889
volumes:
- /data2:/data2
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/logs:/var/log/nginx4、配置nginx文件
配置文件對(duì)應(yīng)在docker-compose的路徑,nginx主要代碼段
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#access_log logs/access.log main;
sendfile on;
keepalive_timeout 65;
server {
listen 8888;
server_name 192.168.16.119;
location / {
root /mnt/ind_web;
try_files $uri $uri/ @router;
index index.html;
}
# 映射后臺(tái)接口
location /api {
proxy_pass http://192.168.16.118:8088/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_cookie_path /api /;
}
location @router {
rewrite ^.*$ /index.html last;
}
}
server {
listen 8889;
server_name 192.168.16.119;
location / {
root /mnt/ind_pcweb;
try_files $uri $uri/ @router;
index index.html;
}
location @router {
rewrite ^.*$ /index.html last;
}
}
}4、啟動(dòng)-執(zhí)行
進(jìn)入文件存放位置執(zhí)行
docker-compose up -d nginx
啟動(dòng)完畢之后查看狀態(tài)和映射端口
docker ps
之前的圖掛了 ,現(xiàn)場(chǎng)去開發(fā)環(huán)境截了個(gè)圖

然后就可以根據(jù)nginx的配置去修改前端后端的映射地址了
常用的一些命令:
#啟動(dòng)
docker-compose start
#停止但不刪除
docker-compose stop
# 重啟
docker-compose restart
#停用移除所有容器以及網(wǎng)絡(luò)相關(guān)
docker-compose down
#查看所有容器 (帶名稱則查看某個(gè)容器)
docker-compose ps
#查看nginx的日志
docker-compose logs nginx
#查看nginx的實(shí)時(shí)日志
docker-compose logs -f nginx
#進(jìn)入容器
docker-compose exec nginx bash總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker-compose啟動(dòng)mysql雙機(jī)熱備互為主從的方法實(shí)現(xiàn)
本文主要介紹了docker-compose啟動(dòng)mysql雙機(jī)熱備互為主從的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
docker容器通過ping直接運(yùn)行獲取公網(wǎng)IP操作
這篇文章主要介紹了docker容器通過ping直接運(yùn)行獲取公網(wǎng)IP操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11
使用Docker部署Python Flask應(yīng)用的完整教程
Docker是一種開源的容器化平臺(tái),可以將應(yīng)用程序及其依賴項(xiàng)打包成一個(gè)獨(dú)立的容器,實(shí)現(xiàn)快速部署和跨平臺(tái)運(yùn)行,本文將詳細(xì)介紹如何使用Docker來部署Python Flask應(yīng)用程序,幫助開發(fā)者更高效地構(gòu)建和部署應(yīng)用,需要的朋友可以參考下2024-06-06
詳解Docker中VLAN網(wǎng)絡(luò)模式的配置
在Docker應(yīng)用到生產(chǎn)環(huán)境的時(shí)候包括了原生Bridge NAT模式、LinuxBridge VLAN模式以及利用第三方的網(wǎng)絡(luò)方案這三種,這篇文章給大家詳細(xì)介紹了Docker中VLAN網(wǎng)絡(luò)模式的配置,有需要的朋友們下面來一起看看吧。2016-10-10

