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
相关推荐
期待のcode4 分钟前
原子操作类LongAdder
java·开发语言
舟舟亢亢39 分钟前
Java集合笔记总结
java·笔记
小酒窝.1 小时前
【多线程】多线程打印ABC
java
乡野码圣1 小时前
【RK3588 Android12】RCU机制
java·jvm·数据库
JAVA+C语言1 小时前
如何优化 Java 多主机通信的性能?
java·开发语言·php
编程彩机2 小时前
互联网大厂Java面试:从分布式架构到大数据场景解析
java·大数据·微服务·spark·kafka·分布式事务·分布式架构
小酒窝.3 小时前
【多线程】多线程打印1~100
java·多线程
君爱学习3 小时前
基于SpringBoot的选课调查系统
java
APIshop3 小时前
Java 实战:调用 item_search_tmall 按关键词搜索天猫商品
java·开发语言·数据库
血小板要健康3 小时前
Java基础常见面试题复习合集1
java·开发语言·经验分享·笔记·面试·学习方法