Jump to content
  • Hello visitors, welcome to the Hacker World Forum!

    Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

    TheHackerWorld Official

Linux基础知识(13)- Docker (六) | 使用 Docker 安装常用应用程序

 Share


Recommended Posts


本文演示使用 Docker 安装 Ubuntu、CentOS、Nginx、Apache、Tomcat、Redis、MariaDB(MySQL)、Python、PHP 和 NodeJS。

1. 安装 Ubuntu

    Ubuntu 是基于 Debian 的 Linux 操作系统。

    1) 查看可用的 Ubuntu 版本
    
        访问 Ubuntu 镜像库地址: https://hub.docker.com/_/ubuntu?tab=tags&page=1。

        可以通过 Sort by 查看其他版本的 Ubuntu,默认是最新版本 ubuntu:latest。

        可以在下拉列表中找到其他想要的版本,也可以用 docker search 命令来查看可用版本:

            $ docker search ubuntu

    2) 拉取 Ubuntu 镜像
    
        $ docker pull ubuntu   # 相当于 docker pull ubuntu:latest
        $ docker images        # 查看镜像列表

    3) 运行容器,并且可以通过 exec 命令进入 ubuntu 容器

        $ docker run -itd --name ubuntu-test ubuntu
        $ docker ps  # 查看运行的容器列表
        $ docker exec -it ubuntu-test /bin/bash


2. 安装 CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux(RHEL) 依照开放源代码规定发布的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。

    1) 查看可用的 CentOS 版本

        访问 CentOS 镜像库地址:https://hub.docker.com/_/centos?tab=tags&page=1。

        可以通过 Sort by 查看其他版本的 CentOS,默认是最新版本 centos:latest 。

        可以在下拉列表中找到其他想要的版本,也可以用 docker search 命令来查看可用版本:

            $ docker search centos

    2) 拉取指定版本的 CentOS 镜像,这里我们安装指定版本为例(centos7):
    
        $ docker pull centos:centos7
        $ docker images     # 查看镜像列表

    3) 运行容器,并且可以通过 exec 命令进入 CentOS 容器。

        $ docker run -itd --name centos-test centos:centos7
        $ docker ps  # 查看运行的容器列表
        $ docker exec -it centos-test /bin/bash


3. 安装 Nginx

    Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 。

    1) 查看可用的 Nginx 版本
    
        访问 Nginx 镜像库地址:https://hub.docker.com/_/nginx?tab=tags。

        可以通过 Sort by 查看其他版本的 Nginx,默认是最新版本 nginx:latest。

        可以在下拉列表中找到其他想要的版本,也可以用 docker search 命令来查看可用版本:

            $ docker search nginx

    2) 拉取 Nginx 镜像

        $ docker pull nginx     # 相当于 docker pull nginx:latest
        $ docker images         # 查看镜像列表

    3) 运行容器

        $ docker run --name nginx-test -p 8888:80 -d nginx

        参数说明:

            --name nginx-test:容器名称。
            -p 8888:80: 端口进行映射,将本地 8888 端口映射到容器内部的 80 端口。
            -d nginx: 设置容器在在后台一直运行。

        通过浏览器可以直接访问 8888 端口的 nginx 服务。


4. 安装 Apache

    Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。

    1) 查看可用的 httpd 版本
    
        访问 httpd 镜像库地址:https://hub.docker.com/_/httpd?tab=tags。

        可以通过 Sort by 查看其他版本的 httpd,默认是最新版本 httpd:latest。

        可以在下拉列表中找到其他想要的版本,也可以用 docker search 命令来查看可用版本:

            $ docker search httpd

    2) 拉取 httpd 镜像

        $ docker pull httpd   # 相当于 docker pull httpd:latest
        $ docker images       # 查看镜像列表

    3) 运行容器

        $ docker run --name httpd-test -p 80:80 -v /var/www/httpd/htdocs/:/usr/local/apache2/htdocs/ -v /var/www/httpd/logs/:/usr/local/apache2/logs/ -d httpd

        参数说明:

            --name httpd-test:容器名称。
            -p 80:80: 端口进行映射,将本地 80 端口映射到容器内部的 80 端口。
            -v: 将主机的目录或文件挂载到容器的目录或文件。
            -d httpd 设置容器在在后台一直运行。

        通过浏览器可以直接访问 80 端口的 httpd 服务。


5. 安装 Tomcat

    Tomcat 是应用(java)服务器,它只是一个 servlet 容器,是 Apache 的扩展。 Apache 和 Tomcat 都可以做为独立的 web 服务器来运行,但是 Apache 不能解释 java 程序(jsp,servlet)。

    1) 查看可用的 tomcat 版本
    
        访问 tomcat 镜像库地址:https://hub.docker.com/_/tomcat?tab=tags。

        可以通过 Sort by 查看其他版本的 tomcat,默认是最新版本 tomcat:latest。

        可以在下拉列表中找到其他想要的版本,也可以用 docker search 命令来查看可用版本:

            $ docker search tomcat

    2) 拉取 tomcat 镜像

        $ docker pull tomcat   # 相当于 docker pull tomcat:latest
        $ docker images        # 查看镜像列表

    3) 运行容器

        $ docker run --name tomcat-test -p 8080:8080 -v /var/www/webapps:/usr/local/tomcat/webapps -d tomcat  

        参数说明:

            -p 8080:8080: 端口进行映射,将本地 8080 端口映射到容器内部的 8080 端口。
            -v:将主机中 /var/www/tomcat/webapps 挂载到容器的 /usr/local/tomcat/webapps。

        通过浏览器可以直接访问 8080 端口的 tomcat 服务。


6. 安装 Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 的 NoSQL 数据库,并提供多种语言的 API。

    1) 查看可用的 Redis 版本
    
        访问 Redis 镜像库地址:https://hub.docker.com/_/redis?tab=tags。

        可以通过 Sort by 查看其他版本的 redis,默认是最新版本 redis:latest。

        可以在下拉列表中找到其他想要的版本,也可以用 docker search 命令来查看可用版本:

            $ docker search redis

    2) 拉取 redis 镜像

        $ docker pull redis   # 相当于 docker pull redis:latest
        $ docker images       # 查看镜像列表

    3) 运行容器,并且可以通过 exec 命令进入 redis 容器。

        $ docker run -itd --name redis-test -p 6379:6379 redis

        参数说明:

            -p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机 ip:6379 访问到 Redis 的服务。

        $ docker ps  # 查看运行的容器列表
        
        $ docker exec -it redis-test /bin/bash

            root@a1c24a6cd008:/# redis-cli     # 通过 redis-cli 连接测试使用 redis 服务。
            127.0.0.1:6379> set test "123"
            OK


7. 安装 MariaDB(MySQL)

    MySQL 是世界上最受欢迎的开源数据库。凭借其可靠性、易用性和性能,MySQL 已成为 Web 应用程序的数据库优先选择。 MariaDB 是 MySQL 的一个分支版本。

    1) 查看可用的 MariaDB 版本
    
        访问 MariaDB 镜像库地址:https://hub.docker.com/_/mariadb?tab=tags。

        可以通过 Sort by 查看其他版本的 mariadb,默认是最新版本 mariadb:latest。

        可以在下拉列表中找到其他想要的版本,也可以用 docker search 命令来查看可用版本:

            $ docker search mariadb

    2) 拉取 mariadb 镜像

        $ docker pull mariadb   # 相当于 docker pull mariadb:latest
        $ docker images         # 查看镜像列表

    3) 运行容器,并且可以通过 exec 命令进入 mariadb 容器。

        $ docker run -itd --name mariadb-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mariadb

        参数说明:

            -p 3306:3306:映射容器服务的 3306 端口到宿主机的 3306 端口。外部可以直接通过宿主机 ip:3306 访问到 mariadb 的服务。
            MYSQL_ROOT_PASSWORD=123456:设置 mariadb 服务 root 用户的密码。

        $ docker ps  # 查看运行的容器列表
        
        $ docker exec -it mariadb-test /bin/bash

            root@a1c24a6cd008:/# mysql -u root -p


8. 安装 Python

    1) 查看可用的 Python 版本
    
        访问 Python 镜像库地址:https://hub.docker.com/_/python?tab=tags&page=1。

        可以通过 Sort by 查看其他版本的 Python,默认是最新版本 python:latest。

        可以在下拉列表中找到其他想要的版本,也可以用 docker search 命令来查看可用版本:

            $ docker search python

    2) 拉取 python 镜像

        $ docker pull python:3.8-slim
        $ docker images         # 查看镜像列表

    3) 运行容器,并且可以通过 exec 命令进入 python 容器。

        $ docker run -itd --name python-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mariadb

        参数说明:

            -p 3306:3306:映射容器服务的 3306 端口到宿主机的 3306 端口。外部可以直接通过宿主机 ip:3306 访问到 mariadb 的服务。
            MYSQL_ROOT_PASSWORD=123456:设置 mariadb 服务 root 用户的密码。

        $ docker ps  # 查看运行的容器列表
        
        $ docker exec -it mariadb-test /bin/bash

            root@a1c24a6cd008:/# mysql -u root -p


9. 安装 PHP

    1) 查看可用的 PHP 版本
    
        访问 PHP 镜像库地址:https://hub.docker.com/_/php?tab=tags。

        可以通过 Sort by 查看其他版本的 php,默认是最新版本 php:latest。

        可以在下拉列表中找到其他想要的版本,也可以用 docker search 命令来查看可用版本:

            $ docker search php

    2) 拉取 php 镜像

        $ docker pull php:fpm
        $ docker images         # 查看镜像列表

    3) Nginx + PHP 部署

        (1) 启动 PHP

            $ docker run --name  test-php-fpm -v ~/nginx/www:/www  -d php:fpm       

            参数说明:

                --name test-php-fpm : 将容器命名为 myphp-fpm。
                -v ~/nginx/www:/www : 将主机中项目的目录 www 挂载到容器的 /www
        
        (2) 配置文件

            $ mkdir ~/nginx/conf/conf.d
            $ vim ~/nginx/conf/conf.d/runoob-test-php.conf   # 内容如下

 1                 server {
 2                     listen       80;
 3                     server_name  localhost;
 4 
 5                     location / {
 6                         root   /usr/share/nginx/html;
 7                         index  index.html index.htm index.php;
 8                     }
 9 
10                     error_page   500 502 503 504  /50x.html;
11                     location = /50x.html {
12                         root   /usr/share/nginx/html;
13                     }
14 
15                     location ~ \.php$ {
16                         fastcgi_pass   php:9000;
17                         fastcgi_index  index.php;
18                         fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
19                         include        fastcgi_params;
20                     }
21                 }


            参数说明:

                php:9000: 表示 php-fpm 服务的 URL,下面我们会具体说明。
                /www/: 是 myphp-fpm 中 php 文件的存储路径,映射到本地的 ~/nginx/www 目录。

        (3) 启动 nginx

            $ docker run --name runoob-php-nginx -p 8083:80 -d \
                -v ~/nginx/www:/usr/share/nginx/html:ro \
                -v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
                --link myphp-fpm:php \
                nginx

            参数说明:

                -p 8083:80: 端口映射,把 nginx 中的 80 映射到本地的 8083 端口。
                ~/nginx/www: 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。
                ~/nginx/conf/conf.d: 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。
                --link myphp-fpm:php: 把 myphp-fpm 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。

            在 ~/nginx/www 目录下创建 index.php,代码如下:

            <?php
                echo phpinfo();
            ?>

            浏览器打开 http://127.0.0.1:8083/index.php,显示 php 配置页面。


10. 安装 NodeJS

    1) 查看可用的 NodeJS 版本
    
        访问 NodeJS 镜像库地址:https://hub.docker.com/_/node?tab=tags。

        可以通过 Sort by 查看其他版本的 NodeJS,默认是最新版本 node:latest。

        可以在下拉列表中找到其他想要的版本,也可以用 docker search 命令来查看可用版本:

            $ docker search node

    2) 拉取 node 镜像

        $ docker pull node:latest
        $ docker images         # 查看镜像列表

    3) 运行容器,并且可以通过 exec 命令进入 python 容器。

        $ docker run -itd --name node-test node
        $ docker exec -it node-test /bin/bash
        
            root@6c5d265c68a6:/# node -v
Link to post
Link to comment
Share on other sites

 Share

discussion group

discussion group

    You don't have permission to chat.
    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...