SpringCloud第一篇Docker基础

文章目录

一、常见命令

Docker最常见的命令就是操作镜像、容器的命令,详见官方文档: https://docs.docker.com/

需求:

在DockerHub中搜索Nginx镜像,查看镜像的名称

c 复制代码
docker pull nginx

拉取Nginx镜像

查看本地镜像列表

c 复制代码
docker images

创建并运行Nginx容器

c 复制代码
docker run -d --name nginx -p 80:80 nginx

查看容器

c 复制代码
docker ps
docker ps -a

停止容器

c 复制代码
docker stop nginx

再次启动容器

c 复制代码
docker start nginx

进入Nginx容器

c 复制代码
docker exec -it nginx bash
#退出容器
exit

删除容器

c 复制代码
docker rm mysql
docker rm -f mysql 

二、数据卷

数据卷(volume)是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。

三、数据挂载

查看容器是否与宿主机挂载

c 复制代码
docker inspect 容器名

Mounts目录下为挂载信息

c 复制代码
docker inspect mysql

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  -v /root/mysql/data:/var/lib/mysql \
  -v /root/mysql/init:/docker-entrypoint-initdb.d \
  -v /root/mysql/conf:/etc/mysql/conf.d \
  mysql

四、自定义镜像

镜像就是包含了应用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。

更新详细语法说明,请参考官网文档: https://docs.docker.com/engine/reference/builder

案例:

我们可以基于Ubuntu基础镜像,利用Dockerfile描述镜像结构

c 复制代码
# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录、容器内时区
ENV JAVA_DIR=/usr/local
# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar
# 安装JDK
RUN cd $JAVA_DIR \ && tar -xf ./jdk8.tar.gz \ && mv ./jdk1.8.0_144 ./java8
# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin
# 入口,java项目的启动命令
ENTRYPOINT ["java", "-jar", "/app.jar"]

也可以直接基于JDK为基础镜像,省略前面的步骤:

c 复制代码
# 基础镜像
FROM openjdk:11.0-jre-buster
# 拷贝jar包
COPY docker-demo.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]

五、网络

默认情况下,所有容器都是以bridge方式连接到Docker的一个虚拟网桥上:

加入自定义网络的容器才可以通过容器名互相访问,Docker的网络操作命令如下:

相关推荐
艾菜籽3 小时前
Spring MVC入门补充2
java·spring·mvc
Yyyy4823 小时前
容器化技术
docker
送秋三十五5 小时前
Docker 构建教程:学习上下文、架构和性能优化技术
学习·docker·架构
为java加瓦6 小时前
Spring 方法注入机制深度解析:Lookup与Replace Method原理与应用
java·数据库·spring
无名客06 小时前
SpringCloud中的网关(Gateway)的作用是什么?
spring·spring cloud·gateway
hrrrrb8 小时前
【Spring Security】Spring Security 概念
java·数据库·spring
小信丶8 小时前
Spring 中解决 “Could not autowire. There is more than one bean of type“ 错误
java·spring
yannan2019031315 小时前
Docker容器
运维·docker·容器
hello 早上好15 小时前
深入 Spring 依赖注入底层原理
数据库·sql·spring
小宁爱Python15 小时前
Windows Docker Desktop占用C盘空间过大解决办法集合
运维·docker·容器