docker应用之部署常用服务
1、Docker 安装 Nginx
1-1、Nginx简介
Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务
访问 Nginx 镜像库地址: 点击这里
此外,我们还可以用 docker search nginx命令来查看可用版本:
[root@VM-0-14-centos ~]# docker search nginx
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/nginx Official build of Nginx. 13613 [OK]
docker.io docker.io/jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1861 [OK]
docker.io docker.io/richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 782 [OK]
docker.io docker.io/linuxserver/nginx An Nginx container, brought to you by Linu... 126
docker.io docker.io/bitnami/nginx Bitnami nginx Docker Image 88 [OK]
docker.io docker.io/tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rt... 88 [OK]
docker.io docker.io/jc21/nginx-proxy-manager Docker container for managing Nginx proxy ... 77
docker.io docker.io/alfg/nginx-rtmp NGINX, nginx-rtmp-module and FFmpeg from s... 72 [OK]
docker.io docker.io/nginxdemos/hello NGINX webserver that serves a simple page ... 59 [OK]
docker.io docker.io/jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 53 [OK]
1-2、下载最新nginx镜像
这里的nginx默认下载最新版本
[root@VM-0-14-centos ~]# docker pull nginx
Using default tag: latest
Trying to pull repository docker.io/library/nginx ...
latest: Pulling from docker.io/library/nginx
bf5952930446: Pull complete
cb9a6de05e5a: Pull complete
9513ea0afb93: Pull complete
b49ea07d2e93: Pull complete
a5e4a503d449: Pull complete
Digest: sha256:b0ad43f7ee5edbc0effbc14645ae7055e21bc1973aee5150745632a24a752661
Status: Downloaded newer image for docker.io/nginx:latest
1-3、查看本地镜像
[root@VM-0-14-centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/nginx latest 4bb46517cac3 32 hours ago 133 MB
1-4、运行容器
安装完成后,我们可以使用docker run命令来运行 nginx 容器:
[root@VM-0-14-centos ~]# docker run --name nginx -p 8080:80 -d nginx
3863890a340a725126a9f7953ff9287b7d4ca8802cbf712a47c10d378f046653
据图参数解析如下
--name nginx:容器名称。
-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
-d nginx: 设置容器在在后台一直运行。
1-5、检查nginx是否正常运行
在浏览器地址栏上输入服务器IP地址加上刚才映射的端口号看到以下图画代表nginx正常访问
2、Docker 安装 Mysql
2-1、Mysql 简介
MySQL 是世界上最受欢迎的开源数据库。凭借其可靠性、易用性和性能,MySQL 已成为 Web 应用程序的数据库优先选择。
访问 MySQL 镜像库地址: 点击这里
还可以用 docker search mysql 命令来查看可用版本:
[root@VM-0-14-centos ~]# docker search mysql
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mysql MySQL is a widely used, open-source relati... 9841 [OK]
docker.io docker.io/mariadb MariaDB is a community-developed fork of M... 3592 [OK]
docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 720 [OK]
docker.io docker.io/percona Percona Server is a fork of the MySQL rela... 502 [OK]
docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 80
docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. ... 74
docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li... 61 [OK]
docker.io docker.io/bitnami/mysql Bitnami MySQL Docker Image 44 [OK]
docker.io docker.io/deitch/mysql-backup REPLACED! Please use http://hub.docker.com... 41 [OK]
docker.io docker.io/tutum/mysql Base docker image to run a MySQL database ... 35
docker.io docker.io/prom/mysqld-exporter 31 [OK]
docker.io docker.io/schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic back... 30 [OK]
docker.io docker.io/databack/mysql-backup Back up mysql databases to... anywhere! 28
docker.io docker.io/linuxserver/mysql A Mysql container, brought to you by Linux... 25
docker.io docker.io/centos/mysql-56-centos7 MySQL 5.6 SQL database server 20
docker.io docker.io/circleci/mysql MySQL is a widely used, open-source relati... 19
docker.io docker.io/mysql/mysql-router MySQL Router provides transparent routing ... 16
docker.io docker.io/arey/mysql-client Run a MySQL client from a docker container 14 [OK]
docker.io docker.io/fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron t... 8 [OK]
docker.io docker.io/openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 ima... 6
docker.io docker.io/devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offi... 3
docker.io docker.io/ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK]
docker.io docker.io/jelastic/mysql An image of the MySQL database server main... 1
docker.io docker.io/widdpim/mysql-client Dockerized MySQL Client (5.7) including Cu... 1 [OK]
docker.io docker.io/monasca/mysql-init A minimal decoupled init container for mysql 0
2-2、下载最新Mysql镜像
下载最新版本mysql
[root@VM-0-14-centos ~]# docker pull mysql
Using default tag: latest
Trying to pull repository docker.io/library/mysql ...
latest: Pulling from docker.io/library/mysql
bf5952930446: Already exists
8254623a9871: Pull complete
938e3e06dac4: Pull complete
ea28ebf28884: Pull complete
f3cef38785c2: Pull complete
894f9792565a: Pull complete
1d8a57523420: Pull complete
6c676912929f: Pull complete
ff39fdb566b4: Pull complete
fff872988aba: Pull complete
4d34e365ae68: Pull complete
7886ee20621e: Pull complete
Digest: sha256:c358e72e100ab493a0304bda35e6f239db2ec8c9bb836d8a427ac34307d074ed
Status: Downloaded newer image for docker.io/mysql:latest
2-3、查看本地镜像
使用docker images命令查看本地所有镜像
[root@VM-0-14-centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/nginx latest 4bb46517cac3 33 hours ago 133 MB
docker.io/mysql latest 0d64f46acfd1 10 days ago 544 MB
2-4、运行容器
使用以下命令来运行 mysql 容器:
[root@VM-0-14-centos ~]# docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD="123456789" mysql
7d47f68de717d0142a166c2bd9d40c04dac39f351dc0d472cf8cbd992ea62079
具体参数解析如下
-d:设置容器在在后台一直运行。
-i: 交互式操作。
-t: 终端。
-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
2-5、检查Mysql是否正常运行
通过docker ps命令查看是否安装成功:
[root@VM-0-14-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7d47f68de717 mysql "docker-entrypoint..." 4 minutes ago Up 4 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
3863890a340a nginx "/docker-entrypoin..." 38 minutes ago Up 38 minutes 0.0.0.0:8080->80/tcp nginx
使用docker exec进入mysql容器
[root@VM-0-14-centos ~]# docker exec -it 7d47f68de717 /bin/bash
本机可以通过 root 和密码 123456789 访问 MySQL 服务。
root@7d47f68de717:/# mysql -h localhost -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.21 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
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>