docker容器的数据卷

1配置数据卷

bash 复制代码
docker run --name=n01 -d --restart=always -p 80:80 -v /qy172/data/nginx/html:/usr/share/nginx/html nginx

2Docker应用部署

1搜索mysql镜像

docker search mysql

2拉取mysql镜像

docker pull mysql:5.6

3创建容器,

设置端口映射、目录映射

bash 复制代码
docker run -d --name=m01  -p 3306:3306 -v /ykq/mysql/log:/var/log/mysql \
-v /ykq/mysql/data:/var/lib/mysql -v /ykq/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 mysql:8.2.0
  • 参数说明:

  • -p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。

    • -v /ykq/mysql/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录

    • -v /ykq/mysql/log:/var/log/mysql:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录

    • -v /ykq/mysql/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录

    • -e MYSQL_ROOT_PASSWORD=123456: 初始化 root 用户的密码。

4Docker部署tomcat--ssm--部署tomcat

搜索tomcat镜像

docker pull tomcat

创建容器,设置端口映射、目录映射

在/root目录下创建tomcat目录用于存储tomcat数据信息

mkdir ~/tomcat

cd ~/tomcat

bash 复制代码
docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD/wabapps:/usr/local/tomcat/webapps \
tomcat 

使用外部机器访问tomcat。

bash 复制代码
xxxxxxxxxx docker run -dit --name tomcat --restart=always \-p 8080:8080 \-e TZ=Asia/Shanghai \-v /usr/local/app/tomcat/webapps:/usr/local/tomcat/webapps \tomcat:8.5
bash 复制代码
docker run -dit --name tomcat --restart=always \
-p 8080:8080 \
-e TZ=Asia/Shanghai \
-v /usr/local/app/tomcat/webapps:/usr/local/tomcat/webapps \
tomcat:8.5

5Docker部署nginx

1搜索nginx镜像

docker search nginx

2拉取nginx镜像

docker pull nginx

3创建容器,设置端口映射、目录映射

bash 复制代码
# 在/root目录下创建nginx目录用于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
# 在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
vim nginx.conf
bash 复制代码
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
worker_connections  1024;
}


http {
include       /etc/nginx/mime.types;
default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile        on;
#tcp_nopush     on;

keepalive_timeout  65;

#gzip  on;

include /etc/nginx/conf.d/*.conf;
}
bash 复制代码
docker run -id --name=c_nginx \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx

6Redis部署

1搜索redis镜像

docker search redis

2拉取redis镜像

docker pull redis:5.0

3创建容器,设置端口映射

/qy172/data/redis/redis.conf

docker run -id --name=c_redis -p 6379:6379 redis:5.0

4使用外部机器连接redis

不一定非得说这个redis桌面软件

7自定义镜像

上面讲解的内容需要的镜像 都是从远程仓库拉取,我们能否把自己写的工程也变成一个镜像[运维工作者就可以从远程仓库拉取自己镜像]。可以的。 需要自定义镜像

8Dockerfile关键字

9-1Dockerfile案例

1编辑dockerfile文件

root@hecs-33111 docker-files\]# vim centos_dockerfile ```bash FROM centos:7 MAINTAINER ykq <2300316070@qq.com> RUN yum install -y vim WORKDIR /usr CMD ["/bin/bash"] ``` 2构建镜像 ```bash [root@hecs-33111 docker-files]# docker build -f centos_dockerfile -t aaa_centos:1 . -f:表示dockerfile文件 -t: 镜像名称版本号 .: 必须加上 ``` ![](https://file.jishuzhan.net/article/1766422958353420289/6203d49493817e6d19225228001503b5.webp) 3创建容器 docker run -it --name=aaa_centos aaa_centosdocker:1 /bin/bash ![](https://file.jishuzhan.net/article/1766422958353420289/3ea2e5cdb073468100882f4b814164aa.webp) ### 9-2案例2 1准备好springboot jar包并传至宿主机的根目录 ![](https://file.jishuzhan.net/article/1766422958353420289/6fc9149efc83ce44f29251ec9fa7f1af.webp) 2创建docker-files目录,并把jar包移动进去 ![](https://file.jishuzhan.net/article/1766422958353420289/dda7aede5e0cd2b7cc6e242aacffd993.webp) 3创建dockerfile文件并编辑 ```bash FROM java:8 MAINTAINER ykq <2300316070@qq.com> ADD demo-qy158-0.0.1-SNAPSHOT.jar app.jar CMD java -jar app.jar ``` 4根据dockerfile制作镜像 docker build -f ./springboot_dockerfile -t app . **注意: 这个点不能省略** ![](https://file.jishuzhan.net/article/1766422958353420289/f4ceec478e4e4204ee7d0bcbb067a696.webp) 5启动并做端口映射 docker run -id -p 9000:8080 app ![](https://file.jishuzhan.net/article/1766422958353420289/be8eba0815fe78447bf401715095d0c2.webp) ## 8Docker服务编排 可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。 ### 1安装Docker Compose ```bash # Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose # 设置文件可执行权限 chmod +x /usr/local/bin/docker-compose # 查看版本信息 docker-compose -version ``` ![](https://file.jishuzhan.net/article/1766422958353420289/90ce7d626a243770b200ef8e32d5f7dd.webp) #### 2卸载Docker Compose 【根据需要选择】 # 二进制包方式安装的,删除二进制文件即可 rm /usr/local/bin/docker-compose ## 9使用docker compose编排springboot+redis+mysql项目 ### 1docker compose步骤 1. 编写Dockerfile定义各个微服务应用并构建出对应的镜像文件 2. 使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务。 3. 最后,执行docker-compose up命令 来启动并运行整个应用程序,完成一键部署上线 ### 2创建docker-compose目录 1 打包springboot工程 2编写dockerfile文件 ```bash # 基础镜像使用java FROM openjdk:8 # 作者 MAINTAINER ykq # VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp VOLUME /tmp # 将jar包添加到容器中并更名为ykq_docker.jar ADD redis-springboot-cache-0.0.1-SNAPSHOT.jar ykq_docker.jar # 运行jar包 RUN bash -c 'touch /ykq_docker.jar' ENTRYPOINT ["java","-jar","/ykq_docker.jar"] #暴露6001端口作为微服务 EXPOSE 8080 ``` 3编写 docker-compose.yml 文件 ```bash version: "3" services: micro_service: container_name: ms01 build: context: ./project dockerfile: Dockerfile ports: - "8080:8080" volumes: - /app/microService:/data networks: - aaa_net depends_on: - myredis - mymysql myredis: image: redis:6.0.20 ports: - "6379:6379" volumes: - /app/redis/redis.conf:/etc/redis/redis.conf # 必须在宿主机中存在my.cnf文件 - /app/redis/data:/data networks: - aaa_net command: redis-server /etc/redis/redis.conf mymysql: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: 'root' MYSQL_ALLOW_EMPTY_PASSWORD: 'no' MYSQL_DATABASE: 'qy168' ports: - "3306:3306" volumes: - /app/mysql/db:/var/lib/mysql - /app/mysql/conf/my.cnf:/etc/my.cnf # 必须在宿主机中存在my.cnf文件 - /app/mysql/init:/docker-entrypoint-initdb.d networks: - aaa_net command: --default-authentication-plugin=mysql_native_password #解决外部无法访问 networks: aaa_net: ``` 4在\~/docker-compose 目录下 使用docker-compose 启动容器 docker-compose up ![](https://file.jishuzhan.net/article/1766422958353420289/118a8dc12dea027dfc21725e5b333f5e.webp)

相关推荐
乌鸦不像写字台1 小时前
【docker部署】在服务器上使用docker
服务器·docker·容器
互联网搬砖老肖3 小时前
运维打铁: MongoDB 数据库集群搭建与管理
运维·数据库·mongodb
Antonio9153 小时前
【音视频】HLS简介与服务器搭建
运维·服务器·音视频
艾伦_耶格宇4 小时前
【docker】-1 docker简介
运维·docker·容器
R.X. NLOS4 小时前
VS Code远程开发新方案:使用SFTP扩展解决Remote-SSH连接不稳定问题
运维·服务器·ssh·debug·vs code
cuijiecheng20185 小时前
Ubuntu下布署mediasoup-demo
linux·运维·ubuntu
IvanCodes5 小时前
二、Docker安装部署教程
docker·容器
Andy杨8 小时前
20250707-4-Kubernetes 集群部署、配置和验证-K8s基本资源概念初_笔记
笔记·容器·kubernetes
jingyu飞鸟8 小时前
linux系统源代码安装apache、编译隐藏版本号
linux·运维·apache
2401_858286119 小时前
OS15.【Linux】gdb调试器的简单使用
linux·运维·服务器·开发语言·gdb