Docker 安装与使用

3.1 安装 Docker

3.1.1 安装

  1. 卸载旧版本
bash 复制代码
yum remove docker docker-common docker-selinux docker-engine
yum remove docker-ce
rm -rf /var/lib/docker
  1. 更新 yum
bash 复制代码
sudo yum update
  1. 安装 Docker 依赖
bash 复制代码
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 修改 yum 源
bash 复制代码
sudo yum-config-manager \
			--add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装最新 Docker Engine
bash 复制代码
sudo yum install docker-ce docker-ce-cli containerd.io
  1. 查看安装版本
bash 复制代码
docker -v

3.1.2 设置镜像加速

json 复制代码
# 编辑 daemon.json
vi /etc/docker/daemon.json

# 配置阿里云镜像地址
{ 
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}

# 刷新配置、重启 Docker
systemctl daemon-reload
systemctl restart docker

3.1.3 Docker 启动与停止

操作 命令
启动 Docker systemctl start docker
停止 Docker systemctl stop docker
重启 Docker systemctl restart docker
查看 Docker 状态 systemctl status docker
开机启动 Docker systemctl enable docker
查看 Docker 概要信息 docker info
查看帮助文档 docker --help
重载 daemon.json systemctl daemon-reload

3.2 Docker 常用命令

3.2.1 镜像相关

  1. 查看镜像
bash 复制代码
docker images
  1. 搜索镜像
bash 复制代码
docker search 镜像名称
  1. 拉取镜像
bash 复制代码
docker pull 镜像名称
  1. 删除镜像
bash 复制代码
# 根据 ID 删除
docker rmi 镜像ID
bash 复制代码
# 删除所有镜像
docker rmi `docker images -q`

3.2.2 容器相关

  1. 创建与启停容器
bash 复制代码
# 交互式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
# 守护式创建容器
docker run -di --name=容器名称 镜像名称:标签
参数 说明
-i 运行容器
-t 容器启动后会进入其命令行
-d 创建一个守护式容器在后台运行,即不进入容器
--name 为创建的容器命名
-v 表示目录映射关系,宿主机目录:容器目录
-p 端口映射,宿主机端口:容器端口
-e 添加环境变量,如:MYSQL_ROOT_PASSWORD
bash 复制代码
# 退出容器
exit
# 登录容器
docker exec -it 容器名称/容器ID /bin/bash
# 启动容器
docker start 容器名称/容器ID
# 停止容器
docker stop 容器名称/容器ID
  1. 查看容器
bash 复制代码
# 查看正在运行中的容器
docker ps
bash 复制代码
# 查看所有容器
docker ps --a
# 查看最后一次运行的容器
docker ps --l
# 查看可以停止的容器
docker ps -f status=exited
  1. 文件拷贝
bash 复制代码
# 宿主机拷贝到容器
docker cp 宿主机中需要拷贝的文件或目录 容器名称:容器目录
# 容器拷贝到宿主机
docker cp 容器名称:容器中需要拷贝的文件或目录 宿主机目标文件或目录名
  1. 查看容器信息
bash 复制代码
# 查看容器详细信息
docker inspect 容器名称/容器ID
bash 复制代码
# 查看容器 IP,就是把全部信息进行提取了
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
  1. 查看容器运行日志
bash 复制代码
docker logs [OPTIONS] 容器名称/容器ID
属性 说明
-t 加入时间戳
-f 实时打印最新日志
-tail number 打印最后 number 条

3.3 应用部署示例

3.3.1 MySQL 部署

  1. 拉取镜像
bash 复制代码
docker pull centos/mysql-57-centos7
  1. 创建容器
bash 复制代码
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
  1. 登录 MySQL

直接使用 宿主机IP + 端口 即可远程登录 MySQL,密码为环境变量配置的 123456

3.3.2 Nginx 部署

  1. 拉取镜像
bash 复制代码
docker pull nginx
  1. 创建容器
bash 复制代码
# 不挂载目录
docker run -di --name=nginx -p 8080:80 nginx
# 挂载目录
docker run -di --name=nginx -p 8080:80 \
  -v /home/nginx/log:/var/log/nginx \
  -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
  -v /home/nginx/conf.d:/etc/nginx/conf.d nginx
相关推荐
小蒜学长1 小时前
基于Java的公司采购系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·公司采购系统
lee_tianbai1 小时前
Java SSM 电影票预定系统|完整前后端项目,开箱即用(源码分享)
java·开发语言·数据库
小坏讲微服务1 小时前
Spring Boot 4 新特性全解析:从上手到生产实战
java·spring boot·后端·架构·springboot4
砚底藏山河2 小时前
python量化入门:多周期数据对齐统一时间轴
java·数据库·python·金融·maven
集智飞行2 小时前
解决mavros2 ros2版本cpu占用高的问题
java·服务器·前端
鱼宵2 小时前
LangChain4j 结构化输出:让模型吐出 Java 对象,JSON 不再手写解析
java·开发语言·json·langchain4j
HSunR3 小时前
ruoyi 若依 自定义注解 参数校验
java·前端·数据库
Wang's Blog3 小时前
Java 项目部署之 Docker工具快速入门: Docker 是什么以及它如何解决部署环境问题
java·开发语言·docker
老木避暑研究所3 小时前
从原始数据到洞察:一次完整的避暑房环境数据采集、清洗与可视化分析
java·开发语言