基于Docker安装常用软件

分类: mobile123365sb 发布时间: 2025-08-13 00:43:47 作者: admin

基于Docker安装常用软件

本实验介绍如何基于Docker安装常用的软件,具体包括:

Ubuntu

Cetnos

Nginx

Node.js

PHP

MySQL

Tomcat

Redis

MongoDB

Apache

在安装Ubuntu的过程中,会详细介绍如何在 Docker hub 上查找所需镜像,其余软件安装时不再介绍此过程。

安装 Ubuntu

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

查看可用的 Ubuntu 版本

使用浏览器访问Docker Hub ,在搜索框中输入Ubuntu进行搜索。

默认是按照 Most Popular排序的,也就是按照下载量排序的。一般来说,下载量越高的镜像,质量也越好。

可以看到第一条ubuntu的下载量达到了1000万次以上,选择该镜像作为我们要下载的镜像。

单击该镜像图标,打开详细介绍的页面:

单击拷贝图标可以直接拷贝 docker pull 语句。

Description给出了本镜像的详细介绍信息,Reviewers为用户的评论,Tags为不同版本的镜像。

点击tags后可以看到不同标识的Ubuntu镜像,默认是按照latest排序的。实际应用中,可根据自己的需求,选择相应标识的镜像。这里我们选择 ubuntu:latest 这个镜像。

拉取镜像

使用从网页上拷贝的下载命令下载最新版镜像:

[root@localhost ~]# clear

[root@localhost ~]# docker pull ubuntu:latest

latest: Pulling from library/ubuntu

a70d879fa598: Pulling fs layer

c4394a92d1f8: Downloading

10e6159c56c0: Downloading

latest: Pulling from library/ubuntu

a70d879fa598: Pull complete

c4394a92d1f8: Pull complete

10e6159c56c0: Pull complete

Digest: sha256:3c9c713e0979e9bd6061ed52ac1e9e1f246c9495aa063619d9d695fb8039aa1f

Status: Downloaded newer image for ubuntu:latest

docker.io/library/ubuntu:latest

[root@localhost ~]#

查看本地镜像

使用 docker images 查看是否已安装 ubuntu

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

ubuntu latest 26b77e58432b 13 days ago 72.9MB

[root@localhost ~]#

在上图中可以看到我们已经安装了 ubuntu 镜像。

运行容器

使用 docker run 运行 Ubuntu 容器

[root@localhost ~]# docker run -itd --name ubuntu-test --hostname ubuntu-test ubuntu

6f836cc50671a9684b4873b863eb15c16f80e52f2c891b121a6a506065302699

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

6f836cc50671 ubuntu "/bin/bash" 12 seconds ago Up 11 seconds ubuntu-test

[root@localhost ~]# docker exec -it ubuntu-test /bin/bash

root@ubuntu-test:/# cat /etc/issue

Ubuntu 20.04.2 LTS \n \l

root@ubuntu-test:/#

可以看到 Ubuntu 容器已成功启动。使用 docker exec 进入容器后,可以看到当前 Ubuntu 的版本号为 20.04.2 。

Docker 安装 CentOS

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

拉取镜像

拉取指定版本的 CentOS 镜像,这里我们安装指定版本为例(centos7):

[root@localhost ~]# docker pull centos:centos7

centos7: Pulling from library/centos

2d473b07cdd5: Pulling fs layer

centos7: Pulling from library/centos

2d473b07cdd5: Pull complete

Digest: sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e

Status: Downloaded newer image for centos:centos7

docker.io/library/centos:centos7

[root@localhost ~]#

查看本地镜像

使用 docker images 查看是否已安装centos7

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

ubuntu latest 26b77e58432b 13 days ago 72.9MB

centos centos7 8652b9f0cb4c 5 months ago 204MB

[root@localhost ~]#

在上图中可以看到我们已经安装了 centos7 镜像。

运行容器

运行 centos 容器

[root@localhost ~]# docker run -itd --name centos-test --hostname centos-test centos:centos7

c5f84a55de5ec81f1313b845290aa011fc0d113c173490fc86836e3583eb33fe

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

c5f84a55de5e centos:centos7 "/bin/bash" 8 seconds ago Up 7 seconds centos-test

6f836cc50671 ubuntu "/bin/bash" 3 minutes ago Up 3 minutes ubuntu-test

[root@localhost ~]# docker exec -it centos-test /bin/bash

[root@centos-test /]#

Docker 安装 Nginx

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

拉取镜像

这里我们拉取官方的最新版本的镜像:

[root@localhost ~]# docker pull nginx:latest

latest: Pulling from library/nginx

f7ec5a41d630: Pull complete

aa1efa14b3bf: Pull complete

b78b95af9b17: Pull complete

c7d6bca2b8dc: Pull complete

cf16cd8e71e0: Pull complete

0241c68333ef: Pull complete

Digest: sha256:75a55d33ecc73c2a242450a9f1cc858499d468f077ea942867e662c247b5e412

Status: Downloaded newer image for nginx:latest

docker.io/library/nginx:latest

[root@localhost ~]#

查看本地镜像

使用以下命令来查看是否已安装了 nginx:

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest 62d49f9bab67 2 days ago 133MB

ubuntu latest 26b77e58432b 13 days ago 72.9MB

centos centos7 8652b9f0cb4c 5 months ago 204MB

[root@localhost ~]#

在上图中可以看到我们已经安装了最新版本(latest)的 nginx 镜像。

运行容器

安装完成后,我们可以使用以下命令来运行 nginx 容器:

[root@localhost ~]# docker run --name nginx-test --hostname nginx-test -p 8080:80 -d nginx

f038b19a17d221dfa266132d7f14d1420bb0397a8e6337705e6410f8cf80c0cd

[root@localhost ~]#

参数说明:

--name nginx-test:容器名称。

-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。

-d nginx: 设置容器在在后台一直运行。

测试容器

打开浏览器,输入地址:IP:8080,测试 nginx 服务。

可见,nginx已正确安装。

Docker 安装 Node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一个让 JavaScript 运行在服务端的开发平台。

拉取镜像

这里我们拉取官方的最新版本的镜像:

[root@localhost ~]# docker pull node:latest

latest: Pulling from library/node

latest: Pulling from library/node

76b8ef87096f: Pull complete

2e2bafe8a0f4: Pull complete

b53ce1fd2746: Pull complete

84a8c1bd5887: Pull complete

7a803dc0b40f: Pull complete

b800e94e7303: Pull complete

a71a5fdd1ae1: Pull complete

b308d1251a84: Pull complete

80886c3e6f4a: Pull complete

Digest: sha256:6cbc150709d59d2667f5d34cbf03fb4594dc8b34acb8872f9ab27ba915b28b56

Status: Downloaded newer image for node:latest

docker.io/library/node:latest

[root@localhost ~]#

查看本地镜像

使用 docker images 查看是否已安装

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest 62d49f9bab67 2 days ago 133MB

node latest d2850632b602 5 days ago 936MB

ubuntu latest 26b77e58432b 13 days ago 72.9MB

centos centos7 8652b9f0cb4c 5 months ago 204MB

[root@localhost ~]#

在上图中可以看到我们已经安装了最新版本(latest)的 镜像。

运行容器

[root@localhost ~]# docker run -itd --name node-test --hostname --node-test node

5adedf96f114bd90c616e68bf9623fccfa1b698582ade9b8c839de7ed27f2fb5

[root@localhost ~]# docker exec -it node-test /bin/bash

root@--node-test:/# node -v

v15.14.0

root@--node-test:/# exit

exit

[root@localhost ~]#

通过在容器中运行 node -v 命令,可以看到 node 已正确安装。

Docker 安装 PHP

PHP 即:超文本预处理器,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。 PHP 独特的语法混合了 C 、 Java 、 Perl 以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

拉取镜像

这里我们的版本为:5.6-fpm:

[root@localhost ~]# docker pull php:5.6-fpm

5.6-fpm: Pulling from library/php

5e6ec7f28fb7: Downloading

cf165947b5b7: Download complete

7bd37682846d: Downloading [========================> ] 32.41MB/67.44MB

99daf8e838e1: Downloading

f8628c9f032f: Download complete

50ff925cdfa2: Download complete

6ab76f312877: Download complete

28ea94b4dd82: Download complete

a6dbb35d45d2: Download complete

98b901ec9e8d: Download complete

5.6-fpm: Pulling from library/php

5e6ec7f28fb7: Pull complete

cf165947b5b7: Pull complete

7bd37682846d: Pull complete

99daf8e838e1: Pull complete

f8628c9f032f: Pull complete

50ff925cdfa2: Pull complete

6ab76f312877: Pull complete

28ea94b4dd82: Pull complete

a6dbb35d45d2: Pull complete

98b901ec9e8d: Pull complete

Digest: sha256:4f070f1b7b93cc5ab364839b79a5b26f38d5f89461f7bc0cd4bab4a3ad7d67d7

Status: Downloaded newer image for php:5.6-fpm

docker.io/library/php:5.6-fpm

[root@localhost ~]#

查看本地镜像

使用 docker images 查看是否已安装 php 镜像

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest 62d49f9bab67 2 days ago 133MB

node latest d2850632b602 6 days ago 936MB

ubuntu latest 26b77e58432b 13 days ago 72.9MB

centos centos7 8652b9f0cb4c 5 months ago 204MB

php 5.6-fpm 3458979c7744 2 years ago 344MB

[root@localhost ~]#

在上图中可以看到我们已经安装了 php 镜像。

运行容器

启动 PHP:

[root@localhost ~]# docker run --name myphp-fpm -v ~/nginx/www:/www -d php:5.6-fpm

737d77753a76a1ec1356f5e08a7a47bd4c407d5fb74069b388d4fcb08b79579b

[root@localhost ~]#

命令说明:

--name myphp-fpm : 将容器命名为 myphp-fpm。

-v ~/nginx/www:/www : 将主机中项目的目录 www 挂载到容器的 /www

创建 ~/nginx/conf/conf.d 目录,并在该目录下创建test-php.conf文件,文件内容如下:

server {

listen 80;

server_name localhost;

location / {

root /usr/share/nginx/html;

index index.html index.htm index.php;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

location ~ \.php$ {

fastcgi_pass php:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;

include fastcgi_params;

}

}

配置文件说明:

php:9000: 表示 php-fpm 服务的 URL,下面我们会具体说明。

/www/: 是 myphp-fpm 中 php 文件的存储路径,映射到本地的 ~/nginx/www 目录。

上述操作过程如下:

[root@localhost ~]# mkdir -p ~/nginx/conf/conf.d

[root@localhost ~]# vi ~/nginx/conf/conf.d/php-test.conf

[root@localhost ~]# cat ~/nginx/conf/conf.d/php-test.conf

server {

listen 80;

server_name localhost;

location / {

root /usr/share/nginx/html;

index index.html index.htm index.php;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

location ~ \.php$ {

fastcgi_pass php:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;

include fastcgi_params;

}

}

[root@localhost ~]#

启动 nginx:

[root@localhost ~]# docker run --name 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

f72862ef311b72e4f38f382416949a1ae20ea593cc044df72492543e4b97398d

[root@localhost ~]#

-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,代码如下:

[root@localhost ~]# vi ~/nginx/www/index.php

[root@localhost ~]# cat ~/nginx/www/index.php

echo phpinfo();

?>

[root@localhost ~]#

浏览器打开IP:8083以看到,已正确输出 php 的相关配置信息。

可以看到,已正确输出 php 的相关配置信息。

Docker 安装 MySQL

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

拉取镜像

这里我们拉取官方的最新版本的 mysql 镜像:

[root@localhost ~]# docker pull mysql

Using default tag: latest

latest: Pulling from library/mysql

f7ec5a41d630: Already exists

9444bb562699: Pull complete

6a4207b96940: Pull complete

181cefd361ce: Pull complete

8a2090759d8a: Pull complete

15f235e0d7ee: Pull complete

d870539cd9db: Pull complete

5726073179b6: Pull complete

eadfac8b2520: Pull complete

f5936a8c3f2b: Pull complete

cca8ee89e625: Pull complete

6c79df02586a: Pull complete

Digest: sha256:6e0014cdd88092545557dee5e9eb7e1a3c84c9a14ad2418d5f2231e930967a38

Status: Downloaded newer image for mysql:latest

docker.io/library/mysql:latest

[root@localhost ~]#

查看本地镜像

使用 docker images 查看是否已安装 mysql 镜像

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest 62d49f9bab67 2 days ago 133MB

node latest d2850632b602 6 days ago 936MB

mysql latest cbe8815cbea8 6 days ago 546MB

ubuntu latest 26b77e58432b 13 days ago 72.9MB

centos centos7 8652b9f0cb4c 5 months ago 204MB

php 5.6-fpm 3458979c7744 2 years ago 344MB

[root@localhost ~]#

在上图中可以看到我们已经安装了最新版本(latest)的 mysql 镜像。

运行容器

安装完成后,可以使用以下命令来运行 mysql 容器:

[root@localhost ~]# docker run -itd --name mysql-test --hostname mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

8a92857ce1b3f56fc36e505f6583d96fd076498bbc67e47961f635fd8a501e73

[root@localhost ~]#

参数说明:

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

MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

通过 docker ps 命令查看是否安装成功:

[root@localhost ~]# docker ps -l

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

8a92857ce1b3 mysql "docker-entrypoint.s…" 27 seconds ago Up 26 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql-test

[root@localhost ~]#

本机可以通过 root 和密码 123456 访问 MySQL 服务。

[root@localhost ~]# docker exec -it mysql-test /bin/bash

root@mysql-test:/# mysql -h localhost -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 8

Server version: 8.0.23 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

mysql>

由上图可知,MySQL已正确安装。

注意: 使用 quit 命令可退出 MySQL 。

Docker 安装 Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

拉取镜像

这里我们拉取官方的最新版本的 tomcat 镜像:

[root@localhost ~]# docker pull tomcat

Using default tag: latest

latest: Pulling from library/tomcat

bd8f6a7501cc: Pull complete

44718e6d535d: Pull complete

efe9738af0cb: Pull complete

f37aabde37b8: Pull complete

b87fc504233c: Pull complete

8bf93eef8c9e: Pull complete

a62c27841e77: Pull complete

3b23560b24c9: Pull complete

168537fce8fb: Pull complete

6643b79f9364: Pull complete

Digest: sha256:a655be865e9f62d6d2ed3823c7382a2d77d0a034eb17714bbf2a514c3f620717

Status: Downloaded newer image for tomcat:latest

docker.io/library/tomcat:latest

[root@localhost ~]#

查看本地镜像

使用 docker images 查看 tomcat 是否已安装

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest 62d49f9bab67 2 days ago 133MB

tomcat latest bd431ca8553c 5 days ago 667MB

node latest d2850632b602 6 days ago 936MB

mysql latest cbe8815cbea8 6 days ago 546MB

ubuntu latest 26b77e58432b 13 days ago 72.9MB

centos centos7 8652b9f0cb4c 5 months ago 204MB

php 5.6-fpm 3458979c7744 2 years ago 344MB

[root@localhost ~]#

在上图中可以看到我们已经安装了最新版本(latest)的 tomcat 镜像。

运行容器

首先进入目录:/mnt/docker/tomcat/myapp/,在该目录下创建文件:index.html,在该文件中填入如下内容:

Hello World!

然后启动tomcat,并挂载 /mnt/docker/tomcat/myapp/ 到 tomcat 的 webapps 目录。

[root@localhost ~]# cd /mnt/docker/tomcat/myapp/

[root@localhost myapp]# vi index.html

[root@localhost myapp]# cat index.html

Hello World!

[root@localhost myapp]# docker run --name tomcat-test --hostname tomcat-test -p 8080:8080 -v /mnt/docker/tomcat/myapp:/usr/local/tomcat/webapps/myapp -d tomcat

90d7b61021e89e222bd7eca2c62bdaa8d94cab70028b62bc6983092956756537

[root@localhost myapp]# docker ps -l

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

90d7b61021e8 tomcat "catalina.sh run" 8 seconds ago Up 7 seconds 0.0.0.0:8080->8080/tcp tomcat-test

[root@localhost myapp]#

通过 docker ps 命令可以看到 tomcat 容器已顺利启动。

打开 chrome 浏览器, 访问地址: IP:8080/myapp,可打开刚才编辑的 index.html 。

效果如下:

可见, tomcat 已正确配置。

Docker 安装 Python

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

拉取镜像

这里我们拉取官方的最新版本的镜像:

[root@localhost myapp]# docker pull python:3.6.5

3.6.5: Pulling from library/python

0bd44ff9c2cf: Pulling fs layer

047670ddbd2a: Downloading

ea7d5dc89438: Downloading

ae7ad5906a75: Downloading

0f2ddfdfc7d1: Downloading

d055f4d7ae62: Waiting

c501289d05b9: Downloading

211aaca0a156: Waiting

a2d4f20d1579: Waiting

3.6.5: Pulling from library/python

0bd44ff9c2cf: Pull complete

047670ddbd2a: Pull complete

ea7d5dc89438: Pull complete

ae7ad5906a75: Pull complete

0f2ddfdfc7d1: Pull complete

d055f4d7ae62: Pull complete

c501289d05b9: Pull complete

211aaca0a156: Pull complete

a2d4f20d1579: Pull complete

Digest: sha256:c49ab7d5121521de57653c7209e68102d057ed77aff9859e8a9603b36105911a

Status: Downloaded newer image for python:3.6.5

docker.io/library/python:3.6.5

[root@localhost myapp]#

查看本地镜像

使用 docker images 查看 python 镜像是否已安装

[root@localhost myapp]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest 62d49f9bab67 2 days ago 133MB

tomcat latest bd431ca8553c 5 days ago 667MB

node latest d2850632b602 6 days ago 936MB

mysql latest cbe8815cbea8 6 days ago 546MB

ubuntu latest 26b77e58432b 13 days ago 72.9MB

centos centos7 8652b9f0cb4c 5 months ago 204MB

php 5.6-fpm 3458979c7744 2 years ago 344MB

python 3.6.5 9a58cce9b09f 2 years ago 912MB

[root@localhost myapp]#

在上图中可以看到我们已经安装了最新版本(latest)的 python 镜像。

运行容器

首先创建目录:/mnt/docker/python/myapp,在该目录下创建一个Python程序文件:hello_world.py。

hello_world.py的文件内容如下:

#!/usr/bin/python

print("Hello, World!")

[root@localhost ~]# mkdir -p /mnt/docker/python/myapp

[root@localhost ~]# cd /mnt/docker/python/myapp

[root@localhost myapp]# vi hello_world.py

[root@localhost myapp]# cat hello_world.py

#!/usr/bin/python

print("Hello, World!")

[root@localhost myapp]#

然后启动 Python 容器并运行该文件,

[root@localhost myapp]# docker run -v $PWD:/usr/src/myapp -w /usr/src/myapp python:3.6.5 python hello_world.py

Hello, World!

[root@localhost myapp]#

命令说明:

-v $PWD:/usr/src/myapp: 将主机中当前目录挂载到容器的 /usr/src/myapp。

-w /usr/src/myapp: 指定容器的 /usr/src/myapp 目录为工作目录。

python hello_world.py: 使用容器的 python 命令来执行工作目录中的 hello_world.py 文件。

可以看到,程序已正确执行,说明 Python 已正确配置。

Docker 安装 Redis

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

拉取镜像

这里我们拉取官方的最新版本的镜像:

[root@localhost myapp]# docker pull redis

Using default tag: latest

latest: Pulling from library/redis

f7ec5a41d630: Already exists

a36224ca8bbd: Pull complete

7630ad34dcb2: Pull complete

dd0ea236b03b: Pull complete

ed6ed4f2f5a6: Pull complete

8788804112c6: Pull complete

Digest: sha256:08e282682a708eb7f51b473516be222fff0251cdee5ef8f99f4441a795c335b6

Status: Downloaded newer image for redis:latest

docker.io/library/redis:latest

[root@localhost myapp]#

查看本地镜像

使用 docker images 查看 reids 是否已安装

[root@localhost myapp]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest 62d49f9bab67 2 days ago 133MB

tomcat latest bd431ca8553c 5 days ago 667MB

redis latest de974760ddb2 5 days ago 105MB

node latest d2850632b602 6 days ago 936MB

mysql latest cbe8815cbea8 6 days ago 546MB

ubuntu latest 26b77e58432b 13 days ago 72.9MB

centos centos7 8652b9f0cb4c 5 months ago 204MB

php 5.6-fpm 3458979c7744 2 years ago 344MB

python 3.6.5 9a58cce9b09f 2 years ago 912MB

[root@localhost myapp]#

在上图中可以看到我们已经安装了最新版本(latest)的 redis 镜像。

运行容器

安装完成后,我们可以使用以下命令来运行 redis 容器:

[root@localhost myapp]# docker run -itd --name redis-test --hostname redis-test -p 6379:6379 redis

8584b00b464a371636d2c1cf7400bf4d2904f08f1f6bc1e390ea9d5b049bc005

[root@localhost myapp]#

参数说明:

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

最后,可以通过 docker ps 命令查看容器的运行信息,通过 redis-cli 连接测试使用 redis 服务。

[root@localhost myapp]# docker ps -l

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

8584b00b464a redis "docker-entrypoint.s…" 28 seconds ago Up 26 seconds 0.0.0.0:6379->6379/tcp redis-test

[root@localhost myapp]# docker exec -it redis-test /bin/bash

root@redis-test:/data# redis-cli

127.0.0.1:6379> set test 1

OK

127.0.0.1:6379>

注意:使用 exit 命令可退出 redis cli 。

Docker 安装 MongoDB

MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序。

拉取镜像

这里我们拉取官方的最新版本的镜像:

[root@localhost myapp]# docker pull mongo

Using default tag: latest

latest: Pulling from library/mongo

6e0aa5e7af40: Downloading

d47239a868b3: Download complete

49cbb10cca85: Download complete

9729d7ec22de: Download complete

7b7fd72268d8: Download complete

5e2934dacaf5: Download complete

bf9da24d4b2c: Download complete

d2f8c3715616: Download complete

e9f96a4a45b0: Download complete

bd66718f31e2: Download complete

41ed4d1a1542: Download complete

7336dfc228e2: Download complete

latest: Pulling from library/mongo

6e0aa5e7af40: Pull complete

d47239a868b3: Pull complete

49cbb10cca85: Pull complete

9729d7ec22de: Pull complete

7b7fd72268d8: Pull complete

5e2934dacaf5: Pull complete

bf9da24d4b2c: Pull complete

d2f8c3715616: Pull complete

e9f96a4a45b0: Pull complete

bd66718f31e2: Pull complete

41ed4d1a1542: Pull complete

7336dfc228e2: Pull complete

Digest: sha256:b66f48968d757262e5c29979e6aa3af944d4ef166314146e1b3a788f0d191ac3

Status: Downloaded newer image for mongo:latest

docker.io/library/mongo:latest

[root@localhost myapp]#

查看本地镜像

使用 docker images 查看 mongo 是否已安装

[root@localhost myapp]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest 62d49f9bab67 2 days ago 133MB

tomcat latest bd431ca8553c 5 days ago 667MB

redis latest de974760ddb2 5 days ago 105MB

node latest d2850632b602 6 days ago 936MB

mysql latest cbe8815cbea8 6 days ago 546MB

mongo latest 30b3be246e39 7 days ago 449MB

ubuntu latest 26b77e58432b 13 days ago 72.9MB

centos centos7 8652b9f0cb4c 5 months ago 204MB

php 5.6-fpm 3458979c7744 2 years ago 344MB

python 3.6.5 9a58cce9b09f 2 years ago 912MB

[root@localhost myapp]#

在上图中可以看到我们已经安装了最新版本(latest)的 mongo 镜像。

运行容器

安装完成后,我们可以使用以下命令来运行 mongo 容器:

[root@localhost myapp]# docker run -itd --name mongo-test --hostname mongo-test -p 27017:27017 mongo --auth

9cea671091e5a8cb98d9a254fced910638351cb626f261713b1bef363d63d419

[root@localhost myapp]#

参数说明:

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

--auth:需要密码才能访问容器服务。

可以通过 docker ps 命令查看容器的运行信息:

[root@localhost myapp]# docker ps -l

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

9cea671091e5 mongo "docker-entrypoint.s…" 24 seconds ago Up 23 seconds 0.0.0.0:27017->27017/tcp mongo-test

[root@localhost myapp]#

可以看到 mongo-test 容器处于正在运行的状态。

接着使用以下命令添加用户和设置密码,并且尝试连接。

[root@localhost myapp]# docker exec -it mongo-test mongo admin

MongoDB shell version v4.4.5

connecting to: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb

Implicit session: session { "id" : UUID("deb88e16-ca76-475e-9fff-df65562a3acf") }

MongoDB server version: 4.4.5

Welcome to the MongoDB shell.

For interactive help, type "help".

For more comprehensive documentation, see

https://docs.mongodb.com/

Questions? Try the MongoDB Developer Community Forums

https://community.mongodb.com

> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});

Successfully added user: {

"user" : "admin",

"roles" : [

{

"role" : "userAdminAnyDatabase",

"db" : "admin"

}

]

}

> Successfully added user: {

... "user" : "admin",

... "roles" : [

... {

... "role" : "userAdminAnyDatabase",

... "db" : "admin"

... }

... ]

... }

uncaught exception: SyntaxError: unexpected token: identifier :

@(shell):1:13

> db.auth('admin', '123456')

1

>

可以看到mongo命令已正确执行。

Docker 安装 Apache

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等。

拉取镜像

这里我们拉取官方的最新版本的镜像:

[root@localhost myapp]# docker pull httpd

Using default tag: latest

latest: Pulling from library/httpd

f7ec5a41d630: Already exists

d1589b6d8645: Pull complete

83d3755a8d28: Pull complete

f8459b08e404: Pull complete

30fabbf5a067: Pull complete

Digest: sha256:a6e472ad921c93d9fc2cbe2ff07560b9a526c145c4e10faff3aeb28c48cce585

Status: Downloaded newer image for httpd:latest

docker.io/library/httpd:latest

[root@localhost myapp]#

查看本地镜像

使用 docker images 查看 apache 是否已安装

[root@localhost myapp]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest 62d49f9bab67 2 days ago 133MB

tomcat latest bd431ca8553c 5 days ago 667MB

redis latest de974760ddb2 5 days ago 105MB

httpd latest 0b932df43057 5 days ago 138MB

node latest d2850632b602 6 days ago 936MB

mysql latest cbe8815cbea8 6 days ago 546MB

mongo latest 30b3be246e39 7 days ago 449MB

ubuntu latest 26b77e58432b 13 days ago 72.9MB

centos centos7 8652b9f0cb4c 5 months ago 204MB

php 5.6-fpm 3458979c7744 2 years ago 344MB

python 3.6.5 9a58cce9b09f 2 years ago 912MB

[root@localhost myapp]#

在上图中可以看到我们已经安装了最新版本(latest)的 apache 镜像。

运行容器

[root@localhost myapp]# docker run -p 80:80 -d httpd

12c5903d0c65235affbd4441ab273ea919311fcce206d299be3b6059935bcfaa

[root@localhost myapp]#

命令说明:

-p 80:80: 将容器的 80 端口映射到主机的 80 端口。

通过 docker ps 查看容器运行情况,

[root@localhost myapp]# docker ps -l

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

12c5903d0c65 httpd "httpd-foreground" 28 seconds ago Up 26 seconds 0.0.0.0:80->80/tcp modest_hypatia

[root@localhost myapp]#

可见,httpd 容器已顺利启动。

通过浏览器进一步验证,地址栏输入:IP,

可以看到 apache 配置正确输出的 It works! 提示。

这表明, apache 已正确安装。

上一篇: 雷蛇笔记本行情 下一篇: 十惡 (佛教)

相关文章

车子开到沟里了怎么办

车子开到沟里了怎么办

有哪些著名的篮球赛事 著名的篮球比赛有哪些

有哪些著名的篮球赛事 著名的篮球比赛有哪些

不安装北斗软件 只能用美国人的GPS?别被骗,只有苹果不能用北斗

不安装北斗软件 只能用美国人的GPS?别被骗,只有苹果不能用北斗

植树用的树苗是怎么来的?

植树用的树苗是怎么来的?

空调内机

空调内机

醐的成语

醐的成语