Docker基础使用

Docker基础使用

  • 1.查看容器
  • 挂载文件夹一定要放开权限,否则后面启动nexus时会无法启动
  • 1.查询远程镜像
  • 重启docker服务
  • 容器自启动
  • 关闭容器自启动
  • 查看docker容器是否挂载
  • 容器挂载解释
  • 保存和加载本地镜像
  • 创建mysql容器
  • 容器转换为镜像
  • 创建dockerfile
  • 容器相互通讯
  • 查看容器的日志
  • 创建网桥
  • 查看网桥
  • 容器加入网桥
  • 首先需要停止所有的容器
  • 删除所有的容器
  • 部署springboot项目日志挂载

1.查看容器

docker ps -a

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

mkdir -p /opt/software/nexus-data && chmod 777 /opt/software/nexus-data

1.查询远程镜像

docker search 镜像名称

重启docker服务

systemctl restart docker

容器自启动

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
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的时候才重启容器

关闭容器自启动

docker update --restart=no my_container

查看docker容器是否挂载

docker inspect idname
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

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 :

docker commit 229588bd9c4b dxw_mysql:1.0

创建dockerfile

FROM java:8
VOLUME /tmp
ADD Dxw-10015.jar app10015.jar
CMD java -jar app10015.jar
docker build -f ./cc -t app10015 .
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
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应用程序。

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 镜像。

容器相互通讯

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 logs c8f5dbadd592

创建网桥

docker network create dxw

查看网桥

 docker network ls

容器加入网桥

 docker network connect dxw ips

首先需要停止所有的容器

docker stop $(docker ps -a -q)

删除所有的容器

docker rm $(docker ps -a -q)

部署springboot项目日志挂载

配置yml

logging:
  level:
    root: error
  file:
    name: /logs/myapp.log
    

创建容器

docker run \
-d \
--name ips \
-p 35809:35808 \
-e TZ=Asia/Shanghai \
-v /host/path/logs:/logs \
--network=dxw \
dxw_ips_35808:v1

你可能感兴趣的:(docker,java,容器)