Docker基础使用

本文详细介绍了Docker的基本使用,包括查看容器状态、挂载文件权限、查询镜像、容器重启策略、网络设置、日志查看以及镜像的创建、保存和加载。涵盖了容器管理和网络配置的关键步骤。
摘要由CSDN通过智能技术生成

创建mysql容器

docker run \
-d \
--name mysql8 \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
-v /volume1/1/jdk/dockerData/docker_data/mysql_data:/var/lib/mysql \
--restart=always \
mysql:8.0.33

创建redis容器

docker run -d \
  --name my-redis \
  -p 6379:6379 \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env REDIS_PASSWORD=Faw_vwzhijie123 \
  redis:latest

创建sqlserver容器

docker run  -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Faw_vwzhijie123' -p 1433:1433 --restart=always --name sql_server_container -d microsoft/mssql-server-linux

demo

docker rm -f celiang_jar
docker rmi -f celiang_jar:v1
docker build -f ./Dockerfile -t celiang_jar:v1 .
docker run -d -p 30041:30041 -e TZ=Asia/Shanghai --restart=always -e server.port=30041 -v /usr/local/docker_data/buckets:/buckets --name=celiang_jar celiang_jar:v1

查杀一条龙

docker rm -f demo6_vue
docker rmi -f demo6_vue:v1
docker build -f ./Dockerfile -t demo6_vue:v1 .
docker run -d -p 30040:80 --restart=always --name=demo6_vue demo6_vue:v1

查看当前目录下个各个文件大小

du -h --max-depth=1 | sort -hr

查看当前系统储存使用情况

df -h

查看当前路径

pwd
/var/lib/docker/volumes
/var/lib/docker/volumes/zhijie-framework-test-logs/_data

删除当前目录下所有包含".log"的文件

rm -f *.log

查看各个容器占用空间的大小

docker stats --no-stream
free -h

1.查看容器

docker ps -a

进入容器内部

docker exec -it <container_id_or_name> /bin/bash

挂载文件夹一定要放开权限,否则后面启动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 <container_name_or_id> <new_image_name>:

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 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值