Docker常用命令
1499 字
7 分钟
Docker常用命令
安装 Docker
yum update #更新 yum 版本
yum install -y yum-utils device-mapper-persistent-data lvm2 # 安装 docker 依赖包
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #设置 yum 源为阿里云的镜像源
yum install docker-ce #安装 docker
docker -v #查看 docker 版本设置 Docker 镜像源
编辑 /etc/docker/daemon.json 文件加入下面内容:
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}然后重启 Docker 服务使配置生效。
Docker 服务命令
systemctl start docker # 启动 Dockersystemctl stop docker # 停止 Dockersystemctl restart docker # 重启 Dockersystemctl status docker # 查看 Docker 状态systemctl enable docker # 设置开机自启docker info # 查看 Docker 详细信息docker --help # 查看帮助信息镜像相关命令
docker images # 查看本地镜像docker search 镜像名称 # 搜索镜像docker pull 镜像名称 # 拉取镜像docker rmi 镜像ID # 删除指定镜像docker rmi `docker images -q` # 删除所有镜像镜像信息说明:
- REPOSITORY:镜像名称
- TAG:镜像标签
- IMAGE ID:镜像 ID
- CREATED:镜像的创建日期(不是获取该镜像的日期)
- SIZE:镜像大小
这些镜像都是存储在 Docker 宿主机的
/var/lib/docker目录下搜索镜像说明:
- NAME:仓库名称
- DESCRIPTION:镜像描述
- STARS:用户评价,反应一个镜像的受欢迎程度
- OFFICIAL:是否官方
- AUTOMATED:自动构建,表示该镜像由 Docker Hub 自动构建流程创建的
容器相关命令
1. 查看容器
docker ps # 查看正在运行的容器docker ps -a # 查看所有容器(包括已停止)docker ps -l # 查看最后一次运行的容器docker ps -f status=exited # 查看已停止的容器2. 创建与启动容器
创建容器常用参数说明
| 参数 | 说明 |
|---|---|
-i | 表示运行容器 |
-t | 容器启动后会进入其命令行,分配一个伪终端 |
--name | 为创建的容器命名 |
-v | 目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录) |
-d | 守护式容器,在后台运行 |
-p | 端口映射(宿主机端口:容器端口) |
交互式方式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
/bin/bash为加载命令,这时我们通过ps命令查看,可以看到启动的容器,状态为启动状态
退出当前容器:
exit守护式方式创建容器(常用)
docker run -di --name=容器名称 镜像名称:标签登录守护式容器方式:
docker exec -it 容器名称(或者容器ID) /bin/bash3. 停止与启动容器
docker stop 容器名称(或者容器ID) # 停止容器docker start 容器名称(或者容器ID) # 启动容器docker restart 容器名称(或者容器ID) # 重启容器4. 文件拷贝
# 将文件拷贝到容器内docker cp 需要拷贝的文件或目录 容器名称:容器目录
# 将文件从容器内拷贝出来docker cp 容器名称:容器目录 需要拷贝的文件或目录5. 目录挂载
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而影响容器。
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7如果你共享的是多级的目录,可能会出现权限不足的提示。这是因为 CentOS7 中的安全模块 selinux 把权限禁掉了,我们需要添加参数
--privileged=true来解决挂载的目录没有权限的问题
docker run -di --privileged=true -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:76. 查看容器 IP 地址
# 查看容器运行的各种数据docker inspect 容器名称(容器ID)
# 直接输出 IP 地址docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)7. 删除容器
docker rm 容器名称(容器ID) # 删除已停止的容器docker rm -f 容器名称(容器ID) # 强制删除运行中的容器应用部署
这里以 MySQL 为例说明如何通过 Docker 部署应用。
1. 拉取 MySQL 镜像
docker pull centos/mysql-57-centos72. 创建容器
docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
-p代表端口映射,格式为宿主机映射端口:容器运行端口-e代表添加环境变量,MYSQL_ROOT_PASSWORD是 root 用户的登录密码
3. 远程登录 MySQL
连接宿主机的 IP,指定端口为 33306。
迁移与备份
容器保存为镜像
我们可以通过以下命令将容器保存为镜像:
docker commit mynginx mynginx_i镜像备份
我们可以通过以下命令将镜像保存为 tar 文件:
docker save -o mynginx.tar mynginx_i镜像恢复与迁移
首先删除掉 mynginx_i 镜像,然后执行此命令进行恢复:
docker load -i mynginx.tar
-i表示输入的文件
执行后再次查看镜像,可以看到镜像已经恢复。
Dockerfile
Dockerfile 是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。
| 命令 | 作用 |
|---|---|
FROM image_name | 定义了使用哪个基础镜像启动构建流程 |
MAINTAINER user_name | 声明镜像的创建者 |
ENV key value | 设置环境变量(可以写多条) |
RUN command | 是 Dockerfile 的核心部分(可以写多条) |
ADD source_dir/file dest_dir/file | 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压 |
COPY source_dir/file dest_dir/file | 和 ADD 相似,但是如果有压缩文件并不能解压 |
WORKDIR path_dir | 设置工作目录 |
使用脚本创建镜像
步骤:
- 创建目录
mkdir -p /usr/local/dockerjdk8-
下载
jdk-8u171-linux-x64.tar.gz并上传到服务器中的/usr/local/dockerjdk8目录 -
创建文件
Dockerfile
# 依赖镜像名称和 IDFROM centos:7# 指定镜像创建者信息MAINTAINER ITCAST# 切换工作目录WORKDIR /usrRUN mkdir /usr/local/java# ADD 是相对路径 jar,把 Java 添加到容器中ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/# 配置 Java 环境变量ENV JAVA_HOME /usr/local/java/jdk1.8.0_171ENV JRE_HOME $JAVA_HOME/jreENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATHENV PATH $JAVA_HOME/bin:$PATH- 执行命令构建镜像
docker build -t='jdk1.8' .注意:后边的空格和点,不要省略
- 查看镜像是否建立完成
docker images支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
相关文章 智能推荐
1
Debian系统重置忘记的 root 密码
系统运维 忘记root密码怎么办?教你重置忘记的 root 密码
2
在 Astro 博客中为 Markdown 添加多图并排的自适应网格画廊功能
开发笔记 通过编写自定义的 Remark 插件,实现 Markdown 文章中非常实用的多图并排自适应画廊效果。
3
别再用 CMD 了!换成 Windows Terminal + PowerShell 7!
Windows 还在忍受古老且功能单一的 CMD 黑框吗?是时候升级你的命令行体验了!本文将手把手教你如何组合使用 Windows Terminal 和 PowerShell 7,并配置 oh-my-posh、PSReadLine 等强大模块。告别卡顿与丑陋界面,一键拥有多标签页、GPU 加速渲染、智能命令补全和超高颜值的命令提示符。让你的 Windows 终端秒变媲美 Linux zsh 的生产力神器,开发效率直接起飞!
4
IntelliJ IDEA 常用快捷键列表(2026珍藏版)
开发工具 程序员必备:IntelliJ IDEA 高频快捷键清单,覆盖编码、调试、重构、查找等常用场景,大幅提升开发效率!
5
Windows系统安装OpenClaw并使用Qwen千问接入飞书教程
OpenClaw Windows系统安装OpenClaw并使用Qwen千问接入飞书教程 🤖
随机文章 随机推荐