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
相关推荐
ChoSeitaku8 分钟前
NO.2|proto3语法|消息类型|通讯录|文件读取|enum类型
java·服务器·前端
庞轩px20 分钟前
MinorGC的完整流程与复制算法深度解析
java·jvm·算法·性能优化
zhouping@22 分钟前
JAVA学习笔记day06
java·笔记·学习
毕设源码-郭学长39 分钟前
【开题答辩全过程】以 某某协会管理与展示平台为例,包含答辩的问题和答案
java
多云的夏天1 小时前
docker容器部署-windows-ubuntu
java·docker·容器
庞轩px1 小时前
内存区域的演进与直接内存——JVM性能优化的权衡艺术
java·jvm·笔记·性能优化
编码忘我1 小时前
java多线程安全集合
java
悟空码字1 小时前
滑块拼图验证:SpringBoot完整实现+轨迹验证+Redis分布式方案
java·spring boot·后端
编码忘我1 小时前
java类加载器及tomcat为什么不用双亲委派
java
MegaDataFlowers2 小时前
快速上手Spring
java·后端·spring