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
相关推荐
跨境小彭1 小时前
Temu运营避坑:制造地点信息填写规范、后果及批量实操教程
大数据·运维·自动化·跨境电商·temu
Dachui_11222 小时前
ZeroNews LFS 使用教程:NAS 文件发布为公网 HTTPS 文件空间,不传网盘、按人授权、免登录分享
运维·网络安全·文件共享·团队协作·nas
March.s2 小时前
Docker 容器与网络深度指南:从入门到精通
docker
智能运维指南2 小时前
2026年企业自动化运维平台选型:四类架构的差异与决策逻辑
运维·人工智能·嘉为蓝鲸
探索云原生2 小时前
KubeClipper 1.7.0 发布:Operation 优化与 Kubernetes 1.37 支持
linux·docker·云原生·kubernetes·go
szephyr2 小时前
Nginx 反向代理实战:从 502、跨域到 HTTPS,一次打通
运维·nginx·https·部署·反向代理
一技安身3 小时前
【信创】docker-26.0.2.tgz 原理 + 完整安装
linux·运维·服务器
Dachui_11223 小时前
内网穿透 Webhook 告警实战:客户端离线、应用探测、资源删除全覆盖
运维·远程工作·内网穿透·devops·webhook·服务器监控·应用探测
数据智研3 小时前
【数据分享】300个城市-5G试点城市DID数据(2014-2025)
大数据·运维·人工智能·信息可视化·数据分析
honsor3 小时前
工业级网口温湿度变送器 ModbusTCP 机房动环环境监测终端
运维·网络·人工智能·物联网·安全·云计算·智能温湿度监测系统