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)

相关推荐
ybb7046302 分钟前
linux第二次作业
linux·运维·服务器
大白同学4211 小时前
【Linux】进程间通信
linux·运维·服务器
..Move...2 小时前
Docker镜像制作
运维·docker·容器
码龄3年 审核中7 小时前
说说SSH的端口转发
大数据·运维·ssh
盛世隐者7 小时前
【Linux】定制Linux系统
linux·运维·服务器
行思理8 小时前
Docker 应该如何学习 分四个阶段
学习·docker·容器
..Move...9 小时前
Docker应用部署tomcat和nginx
nginx·docker·tomcat
Lxt.星翊10 小时前
MySQL(安装和卸载、数据库存储原理图)
linux·运维·windows
苹果醋310 小时前
JAVA面试汇总(二)多线程(五)
运维·vue.js·spring boot·nginx·课程设计
JustNow_Man11 小时前
Cline中模型识别任务与clinerules相关性的实现逻辑
linux·运维·ubuntu