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
相关推荐
利刃大大4 分钟前
【SpringBoot】Spring IOC && DI && 五大注解 && Bean && 扫描路径 && 依赖注入
java·spring boot·spring
William_cl6 分钟前
【CSDN 精品专栏】ASP.NET Razor 变量输出 @变量名:从入门到避坑,新手也能写对!
java·数据库·asp.net
尤物程序猿24 分钟前
spring的监听器的几种使用方式
java·数据库·spring
老华带你飞25 分钟前
学生请假管理|基于springboot 学生请假管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端·spring
毕设源码-钟学长29 分钟前
【开题答辩全过程】以 基于java的点餐猫在线个性化点餐系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
一 乐44 分钟前
校务管理|基于springboot + vueOA校务管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
摇滚侠1 小时前
面试实战 问题三十四 对称加密 和 非对称加密 spring 拦截器 spring 过滤器
java·spring·面试
xqqxqxxq1 小时前
Java 集合框架之线性表(List)实现技术笔记
java·笔记·python
L0CK1 小时前
RESTful风格解析
java