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