docker常用基本命令

复制代码
把jar包和 dockerfile文件放到同一目录下

#构建Docker镜像  注意后面的 . 不能省略
docker build -t your-image-name .


#运行并创建一个容器
docker run -d -p 8080:8080 --name container_name your-image-name


# 停止容器 767fce4cb990 容器ID (容器名也可以)
docker stop 767fce4cb990
docker start 767fce4cb990
docker restart 767fce4cb990


#查看当前运行的容器
docker ps 

#查看所有容器
docker ps -a

#删除容器
docker rm container_name

#删除镜像
docker rmi image_name

# 查看 my_container 容器日志 实时打印
docker logs -f my_container 


# Linux 上的 Docker 引擎用户也可以通过 docker run 的 --add-host 标志启用主机的默认名称 host.docker.internal。Java可以直接使用 host.docker.internal 主机名来访问宿主机的IP地址
# host.docker.internal 主机名。host-gateway 是Docker网络中宿主机的默认网关地址。

docker run -d -p 8080:8080 --add-host host.docker.internal:host-gateway --name container_name image_name

直接访问docker宿主机的IP,host.docker.internal 主机名。host-gateway 是docker网络中宿主机的默认网关地址。

复制代码
# 进入到容器内部 
docker exec -it container_name /bin/bash

#退出容器
exit


# 获取容器详细信息
docker inspect container_name

# 自启动
docker run -d -p 8080:8080 --name container_name --restart=always your-image-name 


#使用docker拉取nginx并命名为 nginx_container 容器
docker run --restart=unless-stopped -p 9709:9709  --name nginx_container \
-v /home/nginx_container/web/html:/usr/share/nginx/html \
-v /home/nginx_container/web/log:/var/log/nginx \
-v /home/nginx_container/web/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx_container/uploadfile:/home/nginx_container/uploadfile \
-d nginx

如果在创建容器的时候没有指定--restart参数,可以使用update更新容器

docker update --restart=unless-stopped container-name

--restart=always # 表示容器退出时,docker会总是自动重启这个容器

--restart=on-failure:3 # 表示容器的退出状态码非0(非正常退出),自动重启容器,3是自动重启的次数。超过3此则不重启

--restart=no # 默认值,容器退出时,docker不自动重启容器

--restart=unless-stopped # 表示容器退出时总是重启,但是不考虑docker守护进程运行时就已经停止的容器

docker运行mysql

复制代码
# 拉取镜像:
docker pull mysql

# 运行镜像 并进行日志和数据库文件映射
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /opt/docker/mysql/data:/var/lib/mysql -v /opt/docker/mysql/log:/var/log --restart always mysql

1.-itd :这是 docker run 命令的参数组合,-i 和**-t** 是命令中的两个参数,用于在容器与终端之间建立交互式连接;-d:将容器设置为 "detached" 模式,容器在后台运行。

2、--name mysql-test :通过 --name 参数,你为容器指定了一个名称 "mysql-test"。这个名称是你自己定义的容器标识符,用于在后续操作中识别和管理容器。

3、-p 3306:3306 :通过 -p 参数,你将主机的 3306 端口映射到容器的 3306 端口。这样,你可以通过主机的 3306 端口访问容器内的 MySQL 服务。例如,通过主机的 IP 地址和 3306 端口,你可以使用 MySQL 客户端连接到容器中的 MySQL 数据库

4、-e MYSQL_ROOT_PASSWORD=123456 :通过 -e 参数,你设置了 MySQL 数据库的 root 用户的密码为 "123456"。这是安全设置,确保数据库具有密码保护。

5、-v:这是要进行挂载的文件 前面的路径是宿主机的目录,后面的是docker容器里面的路径

6、 restart always 开机启动

7、mysql:这是要运行的 Docker 镜像的名称。

docker运行redis

复制代码
# 拉取redis镜像:
docker pull redis

# 创建并运行redis容器
docker run -d --privileged=true --restart always -v /opt/docker/redis/conf/data:/data --name myredis -p 6379:6379 redis --appendonly yes

-d -> 以守护进程的方式启动容器

-p 6379:6379 -> 绑定宿主机端口

--name myredis -> 指定容器名称

--restart always -> 开机启动

--privileged=true -> 提升容器内权限

-v /root/docker/redis/data:/data -> 映射数据目录

--appendonly yes -> 开启数据持久化

docker运行nginx

复制代码
# 拉取nginx并运行容器  /opt/static/dist 这个路径是我前端打包的静态资源
docker run --restart=unless-stopped -p 80:80  --name my_nginx \
-v /opt/static/dist:/opt/static/dist \
-v /opt/static/log:/var/log/nginx \
-v /opt/static/nginx/nginx.conf:/etc/nginx/nginx.conf \
-d nginx

docker网卡相关:

复制代码
# 查看容器的ip地址 container_name  容器名称,通过模板 {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} 来提取容器的 IP 地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name


# 创建一个新的Docker网络  my_custom_network 网卡名称
docker network create my_custom_network

# 查看网卡列表
docker network list 

# 运行容器并将其加入到新网络
docker run --network my_custom_network -d --name my_container my_image


# 将创建的网卡附加到容器上
docker network connect my_custom_network container_id
相关推荐
Leinwin4 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_865382504 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇4 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7594 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣5 小时前
智能体选型实战指南
运维·人工智能
yy55275 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ6 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔7 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密7 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20158 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑