docker常用基本命令

把jar包和 dockerfile文件放到同一目录下

#构建Docker镜像  注意后面的 . 不能省略 .表示Dockerfile所在的当前目录
docker build -t your-image-name .
#添加镜像版本号
docker build -t your-repository/your-image-name:version-number .


#运行并创建一个容器
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
# 或者
docker exec -it container_name /bin/sh

#退出容器
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 \
-v /opt/static/nginx/nginx/conf:/etc/nginx/conf.d \  
-d nginx
-v /opt/static/nginx/nginx.conf:/etc/nginx/nginx.conf  # 这句是映射nginx默认配置文件
-v /opt/static/nginx/nginx/conf:/etc/nginx/conf.d  # 这个是一个目录,nginx默认配置目录,会加载这个目录下所有的 *conf文件 ,一般默认有一个 default.conf 文件 :内容结构是 server {
}

一般这两个挂载只用一个就行了 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼大虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值