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
相关推荐
jugt1 小时前
CentOS 7.9安装Nginx1.24.0时报 checking for LuaJIT 2.x ... not found
linux·运维·centos
21号 13 小时前
9.进程间通信
linux·运维·服务器
阿福不是狗5 小时前
Python使用总结之Mac安装docker并配置wechaty
python·macos·docker
叶落闲庭8 小时前
【k8s】k8s集群搭建
云原生·容器·kubernetes
搬码临时工8 小时前
电脑同时连接内网和外网的方法,附外网连接局域网的操作设置
运维·服务器·网络
藥瓿亭8 小时前
K8S认证|CKS题库+答案| 3. 默认网络策略
运维·ubuntu·docker·云原生·容器·kubernetes·cks
xyhshen8 小时前
k8s下离线搭建elasticsearch
elasticsearch·容器·kubernetes
Gaoithe8 小时前
ubuntu 端口复用
linux·运维·ubuntu
椰汁菠萝9 小时前
k8s集群安装坑点汇总
云原生·容器·kubernetes
背太阳的牧羊人9 小时前
sudo docker exec -it backend bash 以交互方式(interactive)进入正在运行的 Docker 容器的命令行环境
docker·容器·bash