Docker基础使用

Docker基础使用

1.查看容器

bash 复制代码
docker ps -a

挂载文件夹一定要放开权限,否则后面启动nexus时会无法启动

bash 复制代码
mkdir -p /opt/software/nexus-data && chmod 777 /opt/software/nexus-data

1.查询远程镜像

bash 复制代码
docker search 镜像名称

重启docker服务

bash 复制代码
systemctl restart docker

容器自启动

bash 复制代码
docker run \
-tid \
--name isaler_v0.0.11 \
-p 8081:8080 \
--restart=always \
-v /alidata/iDocker/run/projectImages/isaler/v0.0.11/log:/usr/local/tomcat/logs isaler_v0.0.11
bash 复制代码
docker update --restart=always my_container

Flag Description

no 不自动重启容器. (默认value)

on-failure 容器发生error而退出(容器退出状态不为0)重启容器

unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器

always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器

关闭容器自启动

bash 复制代码
docker update --restart=no my_container

查看docker容器是否挂载

bash 复制代码
docker inspect idname
bash 复制代码
docker inspect --format='{{json .Mounts}}' b3926b731141

容器挂载解释

{

"Type": "bind",

"Source": "/usr/local/docker/mysql5.7/conf/my.cnf",

"Destination": "/etc/my.cnf",

"Mode": "",

"RW": true,

"Propagation": "rprivate" },

这是一个绑定挂载(Bind Mounts)的配置信息:

复制代码
Type: 表示挂载的类型,这里是 "bind",表示绑定挂载。
Source: 挂载的源路径,即主机文件系统中的路径 "/usr/local/docker/mysql5.7/conf/my.cnf"。
Destination: 挂载的目标路径,即容器中的路径 "/etc/my.cnf"。
Mode: 挂载的权限模式,这里是空字符串,表示使用默认权限设置。
RW: 表示挂载是否可读写,这里是 true,表示挂载是可读写的。
Propagation: 挂载的传播属性,这里是 "rprivate",表示挂载更改的传播范围是私有的,只在宿主机和容器之间传播。

这些信息描述了如何将主机上的文件 /usr/local/docker/mysql5.7/conf/my.cnf 绑定挂载到容器中的路径 /etc/my.cnf,并允许容器对该文件进行读写操作。传播属性设置为 "rprivate" 表示挂载更改只会在宿主机和容器之间传播。

保存和加载本地镜像

保存

docker save -o app10015.tar app10015:latest

docker save -o mysql5.7.tar mysql/mysql-server:5.7

加载镜像

docker load -i app10015.tar

docker load -i xxx.tar

创建mysql容器

docker run -id

-p 10015:10015

--net=host

--name=app10015_sl

app10015:latest

bash 复制代码
docker run \
-d \
--name mysql8 \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
-v /usr/local/docker_data/mysql_data:/var/lib/mysql \
--network=host \
mysql:8.0.33

容器转换为镜像

docker commit <container_name_or_id> <new_image_name>:

bash 复制代码
docker commit 229588bd9c4b dxw_mysql:1.0

创建dockerfile

bash 复制代码
FROM java:8
VOLUME /tmp
ADD Dxw-10015.jar app10015.jar
CMD java -jar app10015.jar
bash 复制代码
docker build -f ./cc -t app10015 .
bash 复制代码
docker run \
-d \
--name mysql8 \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
-v /usr/local/docker_data/mysql_data:/var/lib/mysql \
--network=host \
mysql:8.0.33
bash 复制代码
FROM java:8
VOLUME /tmp
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
COPY Dxw-ips-35808.jar /Dxw_ips_35808.jar
ENTRYPOINT ["java","-jar","/Dxw_ips_35808.jar"]

FROM java:8:使用了一个基于Java 8的Docker镜像作为基础镜像。这将为你的应用程序提供Java 8的运行环境。

VOLUME /tmp:在容器内创建了一个卷(volume),用于临时存储数据。在这种情况下,/tmp目录将在容器内被用作临时存储。

ENV TZ=Asia/Shanghai:设置了一个名为TZ的环境变量,并将其值设置为Asia/Shanghai,表示时区为上海。

RUN ln -snf /usr/share/zoneinfo/TZ /etc/localtime \&\& echo TZ > /etc/timezone:在容器内执行了一系列命令。这些命令将时区设置为上海。首先,它链接了正确的时区文件到/etc/localtime,然后将时区信息写入/etc/timezone文件中。

COPY Dxw-ips-35808.jar /Dxw_ips_35808.jar:将本地文件系统中的 Dxw-ips-35808.jar 复制到容器中,并将其重命名为 Dxw_ips_35808.jar。

ENTRYPOINT ["java","-jar","/Dxw_ips_35808.jar"]:指定容器启动时要执行的命令。在这里,它运行了Java命令来启动 Dxw_ips_35808.jar 这个Spring Boot应用程序。

bash 复制代码
docker build -f ./DockerFile -t dxw_ips_35808:v1 .
复制代码
docker build: 这是构建 Docker 镜像的命令。
-f ./DockerFile: 指定要使用的 Dockerfile 文件。在这里,假设 Dockerfile 名称为 DockerFile,位于当前目录下。
-t dxw_ips_35808:v1: 使用 -t 参数为镜像设置标签,这里设置了一个名为 dxw_ips_35808,版本为 v1 的标签。
.: 这表示 Docker 构建命令的上下文路径,也就是构建时用来查找上下文文件的路径。. 表示当前目录,即 Dockerfile 所在的目录。

执行这个命令将会在当前目录下根据指定的 DockerFile 构建一个名为 dxw_ips_35808:v1 的 Docker 镜像。

容器相互通讯

bash 复制代码
docker run \
-d \
--name mysql8 \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
-v /usr/local/docker_data/mysql_data:/var/lib/mysql \
--network=host \
mysql:8.0.33

查看容器的日志

bash 复制代码
docker logs c8f5dbadd592

创建网桥

bash 复制代码
docker network create dxw

查看网桥

bash 复制代码
 docker network ls

容器加入网桥

bash 复制代码
 docker network connect dxw ips

首先需要停止所有的容器

bash 复制代码
docker stop $(docker ps -a -q)

删除所有的容器

docker rm $(docker ps -a -q)

部署springboot项目日志挂载

配置yml

bash 复制代码
logging:
  level:
    root: error
  file:
    name: /logs/myapp.log
    

创建容器

bash 复制代码
docker run \
-d \
--name ips \
-p 35809:35808 \
-e TZ=Asia/Shanghai \
-v /host/path/logs:/logs \
--network=dxw \
dxw_ips_35808:v1
相关推荐
IDRSolutions_CN1 分钟前
PDF 合并测试:性能与内容完整性
java·经验分享·pdf·软件工程·团队开发
TDengine (老段)2 分钟前
TDengine 在新能源领域的价值
java·大数据·数据库·人工智能·时序数据库·tdengine·涛思数据
helloworld工程师3 分钟前
Java实现PDF加水印功能:技术解析与实践指南
java·开发语言·pdf
编程乐学(Arfan开发工程师)21 分钟前
10、底层注解-@Conditional条件装配
java·spring boot·后端·架构
爬菜31 分钟前
包装类(1)
java
带刺的坐椅32 分钟前
高德地图 MCP,可用 Java SolonMCP 接入(支持 java8, java11, java17, java21)
java·ai·solon·高德地图·lbs·mcp
AA-代码批发V哥1 小时前
Java-List集合类全面解析
java·开发语言·list
cainiao0806051 小时前
Java大数据机器学习模型在金融衍生品风险建模中的创新实践
java·金融
举一个梨子zz1 小时前
Java—— IO流 第一期
java·开发语言
鸠。1 小时前
第二章 苍穹外卖
java