Docker之常见应用部署

docker之常见应用部署

一、Nginx

1.1 拉取镜像

docker pull nginx

1.2 创建nginx容器

docker run -di --name nginx -p 80:80 nginx

将容器内的配置文件拷贝到指定目录(请先提前创建好目录)。

# 创建目录
mkdir -p /mydata/docker_nginx
# 将容器内的配置文件拷贝到指定目录
docker cp nginx:/etc/nginx /mydata/docker_nginx/

重命名宿主机 /mydata/docker_nginx/nginx/mydata/docker_nginx/conf

mv /mydata/docker_nginx/nginx/ /mydata/docker_nginx/conf

终止并删除容器(目录挂载操作只能在创建容器时设置)

docker stop nginx
docker rm nginx

创建 Nginx 容器,并将容器中的 /etc/nginx 目录和宿主机的 /mydata/docker_nginx/conf 目录进行挂载。

docker run -di --name nginx -p 80:80 -v /mydata/docker_nginx/conf:/etc/nginx nginx

访问宿主机:http://192.168.10.10:80/ 结果如下:

/resources/articles/docker/image-20200812183235528.png

二、MySQL

2.1 拉取镜像

docker pull mysql:8.0.21

2.2 创建容器

docker run -di --name mysql8 -p 3306:3306 -v /mydata/docker_mysql/conf:/etc/mysql/conf.d -v /mydata/docker_mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.21

  • -p:代表端口映射,格式为 宿主机映射端口:容器运行端口。
  • -e:代表添加环境变量 MYSQL_ROOT_PASSWORD 是 root 用户的登陆密码。

连接容器中的 MySQL 时,只需要连接宿主机的 IP + 指定的映射端口即可。

/resources/articles/docker/image-20200812183927191.png

也可以进入容器并使用 MySQL 命令打开客户端。

# 进入容器
docker exec -it mysql8 /bin/bash
# 使用 MySQL 命令打开客户端
mysql -uroot -p1234 --default-character-set=utf8

三、Redis

3.1 拉取镜像

docker pull redis

3.2 创建容器

docker run -di --name redis -p 6379:6379 redis

连接容器中的 Redis 时,只需要连接宿主机的 IP + 指定的映射端口即可。

/resources/articles/docker/image-20200812191215218.png

四、MongoDB

4.1 拉取镜像

docker pull mongo

4.2 创建容器

docker run -di --name mongo -p 27017:27017 mongo

连接容器中的 MongoDB 时,只需要连接宿主机的 IP + 指定的映射端口即可。

/resources/articles/docker/image-20200812205454858.png

五、Elasticsearch

5.1 拉取镜像

docker pull elasticsearch:7.8.1

创建容器,为了方便演示,修改 ES 启动占用内存大小。

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx512m" -e "discovery.type=single-node" -di --name es -p 9200:9200 -p 9300:9300 -p 5601:5601 -v /mydata/docker_es/plugins:/usr/share/elasticsearch/plugins elasticsearch:7.8.1

安装中文分词器

# 进入容器
docker exec -it es /bin/bash
# 安装中文分词器
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.1/elasticsearch-analysis-ik-7.8.1.zip
# 重启 es
docker restart es

访问:http://192.168.10.10:9200/ 结果如下:

/resources/articles/docker/image-20200812221830337.png

5.2 安装 head 插件

5.2.1 拉取镜像
docker pull mobz/elasticsearch-head:5
5.2.2 创建容器
docker run -di --name es-head -p 9100:9100 mobz/elasticsearch-head:5

在浏览器中打开 elasticsearch-head 页面,填入 Elasticsearch 地址

/resources/articles/docker/image-20200814201247072.png

这里会出现跨域拒绝访问的问题,进入 elasticsearch 容器内部,修改配置文件 elasticsearch.yml

# 进入容器
docker exec -it 容器ID或名称 /bin/bash
# 修改配置文件
vi config/elasticsearch.yml

elasticsearch.yml 中添加如下内容。

# 跨域请求配置(为了让类似 head 的第三方插件可以请求 es)
http.cors.enabled: true
http.cors.allow-origin: "*"

重启容器

docker restart es

/resources/articles/docker/image-20200814201950953.png

六、RabbitMQ

6.1 拉取镜像

docker pull rabbitmq

6.2 创建容器

docker run -di --name rabbitmq -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 15671:15671 -p 15672:15672 -p 25672:25672 rabbitmq

进入容器并开启管理功能。

# 进入容器
docker exec -it rabbitmq /bin/bash
# 开启 RabbitMQ 管理功能
rabbitmq-plugins enable rabbitmq_management

访问:http://192.168.10.10:15672/ 使用 guest 登录账号密码,结果如下:

/resources/articles/docker/image-20200812200109882.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker 是一种容器化技术,可以将应用程序和相关依赖项打包在一起,以便快速、可靠地部署和运行。下面是一些常见的步骤,用于在 Docker部署 Web 应用程序: 1. 编写 Dockerfile 文件,定义应用程序和依赖项的镜像。 2. 构建 Docker 镜像,使用 Dockerfile 文件生成应用程序的镜像。 3. 运行 Docker 容器,使用构建的镜像启动容器,并将容器映射到主机上的端口。 以下是一个基本的 Dockerfile 文件示例,用于构建一个 Node.js Web 应用程序的镜像: ``` FROM node:12 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD [ "npm", "start" ] ``` 该文件使用 Node.js 12 作为基础镜像,并将工作目录设置为 /app。然后,它将 package.json 和 package-lock.json 文件复制到容器中,并运行 npm install 安装所有依赖项。最后,它将应用程序的所有文件复制到容器中,并将容器的端口设置为 3000。应用程序启动时,它将通过 npm start 命令启动。 要构建 Docker 镜像,请在包含 Dockerfile 文件的目录中运行以下命令: ``` docker build -t myapp . ``` 这将构建一个名为 myapp 的镜像,并将其标记为最新版本(使用 . 表示当前目录作为构建上下文)。 要运行容器,请使用以下命令: ``` docker run -p 3000:3000 myapp ``` 这将在容器中运行 myapp 镜像,并将容器的端口映射到主机的端口 3000。现在,您可以通过浏览器访问 http://localhost:3000 来查看 Web 应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贾维斯Echo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值