docker 应用部署

参考:docker 构建nginx服务

环境

Redhat 9

步骤:

1、docker部署MySQL

安装yum 工具包

复制代码
[root@admin ~]# yum -y install  yum-utils.noarch 
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

AppStream                                                                                                                                            3.1 MB/s | 3.2 kB     00:00    
BaseOS                                                                                                                                               756 kB/s | 2.7 kB     00:00    
依赖关系解决。
=====================================================================================================================================================================================
 软件包                                      架构                                     版本                                            仓库                                      大小
=====================================================================================================================================================================================
安装:
 yum-utils                                   noarch                                   4.3.0-5.el9_2                                   BaseOS                                    45 k

事务概要
=====================================================================================================================================================================================
安装  1 软件包

总计:45 k
安装大小:23 k
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                                                                      1/1 
  安装    : yum-utils-4.3.0-5.el9_2.noarch                                                                                                                                       1/1 
  运行脚本: yum-utils-4.3.0-5.el9_2.noarch                                                                                                                                       1/1 
  验证    : yum-utils-4.3.0-5.el9_2.noarch                                                                                                                                       1/1 
已更新安装的产品。

已安装:
  yum-utils-4.3.0-5.el9_2.noarch                                                                                                                                                     

完毕!
[root@admin ~]# 

增加阿里云仓库 并去除缓存

复制代码
[root@admin ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

添加仓库自:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@admin ~]# yum clean  all && yum makecache 
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

13 个文件已删除
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

Docker CE Stable - x86_64                                                                                                                             82 kB/s |  41 kB     00:00    
AppStream                                                                                                                                             85 MB/s | 6.3 MB     00:00    
BaseOS                                                                                                                                                75 MB/s | 1.7 MB     00:00    
元数据缓存已建立。
[root@admin ~]# 

安装docker

复制代码
root@admin ~]# yum -y install  docker-ce*
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

上次元数据过期检查:0:00:43 前,执行于 2024年04月02日 星期二 15时40分19秒。
依赖关系解决。
=============================================
省略。。。。。。。。

配置docker镜像加速(直接复制粘贴即可)

复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://7f40piyw.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

拉取mysql 镜像文件

复制代码
root@admin ~]# systemctl  restart  docker.service 
[root@admin ~]# docker pull  mysql:5.7
5.7: Pulling from library/mysql
72a69066d2fe: Pull complete 
93619dbc5b36: Pull complete 
99da31dd6142: Pull complete 
626033c43d70: Pull complete 
37d5d7efb64e: Pull complete 
ac563158d721: Pull complete 
d2ba16033dad: Pull complete 
0ceb82207cd7: Pull complete 
37f2405cae96: Pull complete 
e2482e017e53: Pull complete 
70deed891d42: Pull complete 
Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
[root@admin ~]# 

创建mysql数据卷目录

复制代码
[root@admin ~]# mkdir  /docker_mysql/data -p
[root@admin ~]# 

创建容器拷⻉配置⽂件⽬录到/docker_mysql⽬录 (由于数据卷目录没有MySQL所需的配置文件所以需要此步)

复制代码
[root@admin ~]# docker run -id --name mysql -e mysql_root_password=1 mysql:5.7 
4ebc146b1082d5c814476d6c76ccff11f893f1279e071840f1b9482018cc07e6
[root@admin ~]# docker cp mysql:/etc/mysql/ /docker_mysql/
Successfully copied 12.3kB to /docker_mysql/
[root@admin ~]# 

删除容器

复制代码
[root@admin ~]# docker rm mysql 
mysql
[root@admin ~]# 
[root@admin ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@admin ~]# 

创建MySQL容器并挂载数据卷

复制代码
[root@admin ~]# docker run -id --name msql -p 3306:3306 -v /docker_mysql/mysql/:/etc/mysql -v /docker_mysql/data/mysql:/var/lib/mysql -v /docker_mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=1   mysql:5.7
138fe053e936f66787adf2c8242122ea1283d2e00e1647ea0da78d5b0c5227ca
[root@admin ~]# 

进入数据库测试

复制代码
[root@admin ~]# docker exec  -it msql  /bin/bash
root@138fe053e936:/# mysql -uroot -p1
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 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> 

2、docker部署nginx

拉取镜像

复制代码
[root@admin ~]# docker pull  nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@admin ~]# 

创建数据卷目录

复制代码
[root@admin ~]# mkdir  -p /docker_nginx/html
[root@admin ~]# mkdir  -p /docker_nginx/logs
[root@admin ~]# 

拷贝nginx配置文件

复制代码
[root@admin ~]# docker run -id  --name nginx nginx:latest 
576c4841c72b52696d991905d4bb357a9ab5e69257d4b2c0014213f155e5b126
[root@admin ~]# docker cp nginx:/etc/nginx /docker_nginx/
Successfully copied 16.9kB to /docker_nginx/
[root@admin ~]# cd /d
dev/          docker_mysql/ docker_nginx/ 
[root@admin ~]# cd /docker_nginx/
[root@admin docker_nginx]# ls
html  logs  nginx
[root@admin docker_nginx]# 

删除容器

复制代码
[root@admin ~]# docker stop nginx 
nginx
[root@admin ~]# docker rm nginx 
nginx
[root@admin ~]# 

创建nginx容器并挂载数据卷

复制代码
[root@admin ~]# docker run -id --name nginx -p 80:80 -v /docker_nginx/nginx/:/etc/nginx -v /docker_nginx/html:/usr/share/nginx/html -v /docker_nginx/logs/:/var/log/nginx  nginx

curl命令测试

复制代码
[root@admin ~]# curl  192.168.200.133
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.21.5</center>
</body>
</html>
[root@admin ~]# 

发现403错误(没有index.html文件)

检查配置文件没有index.html文件

进入nginx/html下增加文件

复制代码
[root@admin html]# ls
[root@admin html]# vim index.html
[root@admin html]# cat index.html 
sadggh1k
[root@admin html]# 

curl命令测试

复制代码
[root@admin html]# curl  192.168.200.133
sadggh1k
[root@admin html]

3、docker部署tomcat

拉取tomcat镜像文件

复制代码
[root@admin html]# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
0e29546d541c: Pull complete 
9b829c73b52b: Pull complete 
cb5b7ae36172: Pull complete 
6494e4811622: Downloading [========================================>          ]  44.38MB/54.57MB
6494e4811622: Downloading [=========================================>         ]  44.91MB/54.57MB
6494e4811622: Downloading [============================================>      ]  48.61MB/54.57MB
8f7c0eebb7b1: Downloading [========>                                          ]  34.34MB/203.1MB
6494e4811622: Downloading [=============================================>     ]  49.14MB/54.57MB
6494e4811622: Downloading [=============================================>     ]  49.67MB/54.57MB
6494e4811622: Pull complete 
668f6fcc5fa5: Pull complete 
dc120c3e0290: Pull complete 
8f7c0eebb7b1: Pull complete 
77b694f83996: Pull complete 
0f611256ec3a: Pull complete 
4f25def12f23: Pull complete 
Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest

创建数据卷目录

复制代码
[root@admin ~]# mkdir  /tomcat
[root@admin ~]# 

创建容器拷贝配置文件

复制代码
[root@admin ~]#  docker run -id --name=tomcat tomcat
/bin/bash
049add93e21773d1175e9de2c5aecbde99069bc552ea5e58fe43486dd7dc19af
[root@admin ~]# 
[root@admin ~]# docker cp  tomcat:/usr/local/tomcat /tomcat/
Successfully copied 19.3MB to /tomcat/
[root@admin ~]# cd /tomcat/
[root@admin tomcat]# ls
tomcat
[root@admin tomcat]# 

删除容器

复制代码
[root@admin tomcat]# docker rm tomcat 
tomcat

创建容器挂载数据卷

复制代码
[root@admin ~]#  docker run -id --name=tomcat -p 8080:8080 -v /tomcat/tomcat:/usr/local/tomcat tomcat
e91774eaac35ff405287d52876cd59779f2bcab577e4550b26591eaa013fd124

docker: Error response from daemon: driver failed programming external connectivity on endpoint tomcat (b69726032861fe417817221d9f3a175fa2df831efbc849e9367fc6c3158c22d2):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.17.0.4:8080 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1)).

报出错误重启docker即可

复制代码
[root@admin ~]# systemctl  restart  docker.service 
[root@admin ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@admin ~]# docker ps -a
CONTAINER ID   IMAGE       COMMAND                   CREATED          STATUS                      PORTS     NAMES
e91774eaac35   tomcat      "catalina.sh run"         3 minutes ago    Created                               tomcat
31405e9d01c0   nginx       "/docker-entrypoint...."   20 minutes ago   Exited (0) 13 seconds ago             nginx
138fe053e936   mysql:5.7   "docker-entrypoint.s..."   28 minutes ago   Exited (0) 11 seconds ago             msql
[root@admin ~]# docker start  tomcat
tomcat

创建tomcat网页文件

复制代码
[root@admin ~]# mkdir /tomcat/tomcat/webapps/ROOT
[root@admin ~]# cd  /tomcat/tomcat/webapps/ROOT
[root@admin ROOT]# vim index.html
[root@admin ROOT]# cat index.html 
sagdshgk1
[root@admin ROOT]# 

测试

复制代码
[root@admin ~]# curl  192.168.200.133:8080
sagdshgk1
[root@admin ~]# 
相关推荐
文牧之6 分钟前
PostgreSQL 的扩展pageinspect
运维·数据库·postgresql
小兔子酱#31 分钟前
【Docker 01】Docker 简介
运维·docker·容器
jugt2 小时前
CentOS 7.9安装Nginx1.24.0时报 checking for LuaJIT 2.x ... not found
linux·运维·centos
21号 14 小时前
9.进程间通信
linux·运维·服务器
阿福不是狗6 小时前
Python使用总结之Mac安装docker并配置wechaty
python·macos·docker
叶落闲庭9 小时前
【k8s】k8s集群搭建
云原生·容器·kubernetes
搬码临时工9 小时前
电脑同时连接内网和外网的方法,附外网连接局域网的操作设置
运维·服务器·网络
藥瓿亭9 小时前
K8S认证|CKS题库+答案| 3. 默认网络策略
运维·ubuntu·docker·云原生·容器·kubernetes·cks
xyhshen9 小时前
k8s下离线搭建elasticsearch
elasticsearch·容器·kubernetes
Gaoithe9 小时前
ubuntu 端口复用
linux·运维·ubuntu