1. 程式人生 > 實用技巧 >linux 使用docker安裝軟體

linux 使用docker安裝軟體

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.confdefault.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