Docker容器

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

本文主要是介绍Linux基础知识(13)- Docker (六) | 使用 Docker 安装常用应用程序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!


本文演示使用 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
这篇关于Linux基础知识(13)- Docker (六) | 使用 Docker 安装常用应用程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!