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
相关推荐
鹿角片ljp2 小时前
LeetCode 64:最小路径和复盘|二维 DP 与 ACM 模式完整写法
java·数据结构·算法
泡海椒3 小时前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
景熙55234 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
wno7045 小时前
Spring Security权限控制
java·python·spring
杨运交5 小时前
[071][验证码模块]基于Spring拦截器的验证码认证设计思想
java·后端·spring
Geek-Chow5 小时前
CountDownLatch in Java
java
SL_staff6 小时前
从RBAC到场景化授权:《无忧·企业文档》三级权限模型的技术实践解析
java·开源·产品
传奇开心果编程7 小时前
【springboot基础语法学与练】第 1 课:从零开始
java·spring boot·后端·学习
SL_staff7 小时前
财务系统慎用低代码?从数据模型闭环看合规落地的技术实践
java·低代码·全栈