docker (三)-开箱即用&常用命令

一 docker架构

拉取镜像仓库中的镜像到本地,镜像运行产生一个容器

registry 镜像仓库

registry可以理解为镜像仓库,用于保存docker image。

Docker Hub 是docker官方的镜像仓库,docker命令默认从docker hub中拉取镜像。我们也可以搭建自己的镜像仓库。

image 镜像

image可以理解为一个只读的应用模板。image包含了应用程序及其所需要的依赖环境,例如可执行文件、环境变量、初始化脚本、启动命令等。

container 容器

容器是image的一个运行实例。当我们运行一个image,就创建了一个容器

二 docker pull 拉取镜像

从镜像仓库拉取镜像到本地

docker pull nginx 不写默认是latest

docker pull nginx:latest

docker pull nginx:1.22

docker pull nginx:1.22.0-alpine

一般不建议使用latest,因为最新的镜像是滚动更新的,过一段时间,可能跟你本地的不是同一个。

使用docker images命令查看本地镜像

三 docker run 命令

docker run [可选参数] 镜像名:版本 []

公开端口(-p)

docker run --name some-nginx -d -p 8080:80 nginx:1.22

默认情况下,容器无法通过外部网络访问。

需要使用-p参数将容器的端口映射到宿主机端口,才可以通过宿主机IP进行访问。

浏览器打开 http://192.168.56.106:8080

-p 8080-8090:8080-8090公开端口范围,前后必须对应

-p 192.168.56.106:8080:80如果宿主机有多个ip,可以指定绑定到哪个ip

后台运行

docker run --name db-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

使用run命令,部署mysql,docker先去本地查找镜像,如果找不到,就去docker hub中拉取镜像

  • --name 定义容器的名称
  • -e 声明环境变量
  • -d 容器在后台运行
  • -v 数据持久化
  • 查看容器ip

docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器ID/名

可以使用以下命令操作容器:

docker start db-mysql 启动容器

docker stop 关闭容器

docker restart 重启容器

docker rm 删除容器

前台交互运行

创建一个新的容器,使用mysql客户端

docker run -it --rm mysql:5.7 mysql -h172.17.0.2 -uroot -p

-it 使用交互模式,可以在控制台里输入、输出

--rm**在容器退出时自动删除容器。**一般在使用客户端程序时使用此参数。

如果每次使用客户端都创建一个新的容器,这样将占用大量的系统空间。

mysql -h172.17.0.2 -uroot -p表示启动容器时执行的命令。

  • docker exec在运行的容器中执行命令,一般配合-it参数使用交互模式

    docker exec -it db-mysql /bin/bash

常用命令

  • docker ps 查看正在运行的容器

  • docker ps -a 查看所有容器,包括正在运行和停止的

  • docker inspect 查看容器的信息

  • docker logs查看日志

  • docker cp 在容器和宿主机间复制文件

    docker cp ./some_file 容器名:/work
    docker cp 容器名:/var/logs/ /tmp/app_logs

四 命令汇总

docker pull nginx=== docker pull nginx:latest

docker run --name nginx -p 80:80 -d nginx 代表创建并运行容器
1.容器生命周期管理:

docker run: 运行一个新的容器。

docker start: 启动一个已经停止的容器。

docker stop: 停止一个运行中的容器。

docker restart: 重启一个容器。

docker pause: 暂停容器中的所有进程。

docker unpause: 恢复暂停的容器。

docker rm: 删除一个或多个容器。

docker kill: 强制停止一个运行中的容器。

docker exec: 在运行的容器中执行命令。
2.镜像管理:

docker images: 列出本地的镜像。

docker pull: 从 Docker 仓库拉取镜像。

docker build: 构建一个新的镜像。

docker push: 将镜像推送到 Docker 仓库。

docker rmi: 删除一个或多个本地镜像。
3.容器信息查看:

docker ps: 列出正在运行的容器。

docker ps -a: 列出所有容器,包括停止的容器。

docker inspect: 查看容器详细信息。
4.日志管理:

docker logs: 查看容器的日志输出。
5.网络管理:

docker network ls: 列出 Docker 网络。

docker network inspect: 查看 Docker 网络详细信息。
6.容器资源限制:

docker update: 更新容器资源限制,如内存、CPU等。

数据卷管理:
7.docker volume ls: 列出 Docker 数据卷。

docker volume create: 创建一个新的数据卷。
8.容器状态检查:docker ps 查看status是不是up
9.docker top: 查看容器中正在运行的进程
10.docker数据持久化,目录持久化用什么选项

docker run -v /host/path:/container/path image_name

宿主机目录 容器目录 容器名

查看挂载情况:docker inspect <container_id>

查看容器目录:docker exec <container_name_or_id> ls <directory_path>
11.docker容器里面设置环境变量,使用的选项

docker run -e "ENV1=value1" -e "ENV2=value2" image_name

读取环境命令:docker run --env-file=file_name image_name

查看环境变量:docker exec <container_name_or_id> env

12.怎么进入到容器里

docker exec -it <容器名称或容器ID> /bin/bash

13.docker怎么把容器里的文件,弄到宿主机的/opt目录

docker cp <容器名称或容器ID>:<容器内路径> /opt

相关推荐
龙仔7254 分钟前
ZLMediaKit 日志按日期切割与自动清理方案
运维·服务器·日志切割·自动删除
电化学仪器白超9 分钟前
计量室自动化系统技术文档编制与动态更新说明
运维·python·嵌入式硬件·自动化
这儿有一堆花9 分钟前
SSH 协议的加密与认证原理
运维·网络·ssh
码猩10 分钟前
自用centos9离线安装n8n非docker部署本版
运维·docker·容器
java_logo12 分钟前
MySQL Docker 容器化部署全指南
数据库·mysql·docker·mysql部署·mysql部署文档·mysql部署方案·mysql部署手册
Apex Predator14 分钟前
jenkins备份与恢复
运维·jenkins
FreeSoar119 分钟前
Rocky Linux 10.1 64位安装Firebird3.0
linux·运维·服务器
小趴菜不能喝20 分钟前
服务器推送事件SSE
运维·服务器
蛋王派21 分钟前
Linux 环境 Docker 部署 Elasticsearch 8.13 完整版教程
linux·elasticsearch·docker
Reenrr25 分钟前
docker容器中安装ROS1
运维·docker·容器