linux 使用docker安裝軟體
阿新 • • 發佈:2020-12-17
1、安裝nginx
參考:https://juejin.cn/post/6844904016086827016
一、獲取nginx映象
docker search nginx # 獲取nginx映象列表
docker pull nginx # 拉取官方最新映象到本地
docker images nginx # 檢視拉取到本地的nginx映象IMAGE ID
二、建立nginx容器
測試下nginx映象是否可用
docker run -d --name mynginx -p 80:80 7baf
- -d 指定容器以守護程序方式在後臺執行
- --name 指定容器名稱,此處我指定的是mynginx
- -p 指定主機與容器內部的埠號對映關係,格式 -p [宿主機埠號]:[容器內部埠],此處我使用了主機80埠,對映容器80埠
- 231d 是nginx的映象IMAGE ID前4位
命令執行後返回了容器ID,682bd....,此時我們已經成功建立了nginx容器.
在瀏覽器訪問CentOS主機,會看到nginx歡迎頁
三、將nginx容器內部配置檔案掛載到主機
2、安裝mysql
參考:https://blog.csdn.net/J080624/article/details/104297654
(ps:使用docker部署nginx容易產生403或者訪問不到主機服務等問題,多半是配置不當)
一、獲取mysql映象
docker search mysql docker pull mysql:5.6.45 docker images mysql
二、建立mysql容器
docker run -p 3306:3306 --name mysql -v /opt/soft/mysql/conf:/etc/mysql/conf.d -v /opt/soft/mysql/logs:/var/log/mysql -v /opt/soft/mysql/data:/var/lib/mysq -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6.45 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
-p 3306:3306
:將主機的3306埠對映到docker容器的3306埠。--name mysql
-v /opt/soft/mysql/conf:/etc/mysql/conf.d
:將主機/mydocker/mysql錄下的conf/my.cnf 掛載到容器的 /etc/mysql/conf.d-v /opt/soft/mysql/logs:/var/log/mysql
:將主機/mydocker/mysql目錄下的 logs 目錄掛載到容器的 /logs。-v /opt/soft/mysql/data:/var/lib/mysql
:將主機/mydocker/mysql目錄下的data目錄掛載到容器的 /var/lib/mysql-e MYSQL_ROOT_PASSWORD=123456
:初始化 root 使用者的密碼。-d mysql:5.7
: 後臺程式執行mysql5.6.45--character-set-server=utf8mb4
:設定字符集--collation-server=utf8mb4_unicode_ci
:設定校對集
檢視容器日誌:
docker logs -f -t --tail 100 667bf66d4e5d
進入容器內部檢視:
docker exec -it 667bf66d4e5d /bin/bash
退出容器的方式:
exit–容器停止退出
crtl+p+q—容器不停止退出
三、將nginx容器內部配置檔案掛載到主機
1、在主機 /opt/soft 目錄下執行mkdir -p ./nginx/{conf,html,logs}
2、將容器內的nginx.conf
與default.conf
檔案分別拷貝到主機 /opt/soft/nginx 與目錄 /opt/soft/nginx/conf 下,分別執行 :
- cp 命令代表複製
- ef是我們nginx容器的ID,/etc/nginx/nginx.conf 是容器內部nginx.conf 路徑
docker cp ef:/etc/nginx/nginx.conf ./
docker cp ef:/etc/nginx/conf.d/default.conf ./conf/
3、停止剛剛建立的nginx容器,ef是容器ID
docker stop ef
docker rm ef
4、重新建立nginx容器
docker run -d --name mynginx -p 80:80 -v /opt/soft/nginx/nginx.conf:/etc/nginx/nginx.conf -v /opt/soft/nginx/logs:/var/log/nginx -v /opt/soft/nginx/html:/usr/share/nginx/html -v /opt/soft/nginx/conf:/etc/nginx/conf.d --privileged=true 7baf