安装Docker

使用 Docker 仓库进行安装

卸载老版 Docker

  1. yum remove docker \
  2. docker-client \
  3. docker-client-latest \
  4. docker-common \
  5. docker-latest \
  6. docker-latest-logrotate \
  7. docker-logrotate \
  8. docker-engine

安装 Docker 仓库

  1. yum install -y yum-utils

yum-utils 提供了 yum-config-manager

添加 Yum源

官网提供的yum源(不推荐),其下载比较慢。

  1. yum-config-manager \
  2. --add-repo \
  3. https://download.docker.com/linux/centos/docker-ce.repo

阿里提供的yum源(推荐)

  1. yum-config-manager \
  2. --add-repo \
  3. http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Docker引擎

执行如下命令,默认安装的是最新版本的 Docker引擎

  1. yum install -y docker-ce docker-ce-cli containerd.io

如需要安装其他版本,使用如下命令查看 Docker 版本

  1. [root@server20 ~]# yum list docker-ce --showduplicates | sort -r
  2. docker-ce.x86_64 3:20.10.8-3.el7 docker-ce-stable
  3. docker-ce.x86_64 3:20.10.8-3.el7 @docker-ce-stable
  4. docker-ce.x86_64 3:20.10.7-3.el7 docker-ce-stable
  5. docker-ce.x86_64 3:20.10.6-3.el7 docker-ce-stable
  6. docker-ce.x86_64 3:20.10.5-3.el7 docker-ce-stable

安装其他版本命令:

  1. yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

验证 Docker是否安装成功

  1. docker version

通用安装方式

下载安装脚本

  1. curl -fsSL get.docker.com -o get-docker.sh

执行安装脚本

  1. sh get-docker.sh --mirror Aliyun

配置镜像加速

  1. sudo mkdir -p /etc/docker
  2. sudo tee /etc/docker/daemon.json <<-'EOF'
  3. {
  4. "registry-mirrors": ["https://puuz13iy.mirror.aliyuncs.com"]
  5. }
  6. EOF
  7. sudo systemctl daemon-reload
  8. sudo systemctl restart docker

Docker 服务相关命令

  1. systemctl start docker # 启动 Docker
  2. systemctl status docker # 查看 Docker 状态
  3. systemctl stop docker # 停止 Docker
  4. systemctl restart docker # 重启 Docker
  5. systemctl enable docker # 设置 Docker 开机自启

常用命令

辅助命令

  1. docker version # 查看docker版本
  2. docker info # 查看docker详细信息
  3. docker --help # 帮助手册

Images镜像命令

  1. docker search 镜像名称 # 搜索镜像
  2. docker search mysql # 搜索 mysql 相关镜像
  3. docker pull 镜像名[:tags] # 拉取镜像
  4. docker pull mysql:5.7 # 拉取Mysql5.7 镜像
  5. docker pull tomcat:jdk8
  6. docker images # 查看镜像
  7. docker images -a # 查看所有镜像
  8. docker images -q # 查看镜像的 id
  9. docker rmi 镜像id或镜像名 # 删除镜像

1、通常我们搜索镜像都是去 hub.docker.com,而不是使用 docker search 2、使用 docker rmi 删除正在运行的镜像会报错。如何解决? 方法①、将该镜像对应的容器停止,然后再删除 方法②、docker rmi -f 镜像名或镜像id 强制删除

容器相关命令

容器运行—docker run 命令

  1. docker run 镜像名 # 运行新的容器
  2. docker run 命令后面可以跟很多选项,具体可以参考帮助文档,使用
  3. docker run --help # 参考具体用法
  4. 常用选项
  5. -d # 后台运行
  6. -p # 端口映射 宿主机端口:容器内端口
  7. --name # 给容器起别名
  8. 例如:
  9. docker run -d --name tomcat8.5 -p 8081:8080 tomcat:8.5-jdk8

查看容器 — docker ps 命令

  1. docker ps # 查看正在运行的容器
  2. docker ps -a # 查看所有的容器,包含停止了的容器
  3. docker ps -q # 查看正在运行容器 id
  4. docker ps -qa # 查看所有容器 id

容器启停命令

  1. docker start 容器名或容器id # 启动容器
  2. docker stop 容器名或容器id # 停止容器
  3. docker restart 容器名或容器id # 重启容器
  4. docker kill 容器名或容器id # 杀死正在运行容器

删除容器

  1. docker rm -f 容器名或容器id # 删除某个容器
  2. docker rm -f $(docker ps -qa) # 删除所有容器

查看容器内进程

  1. docker top 容器名或容器id

查看容器运行的日志

  1. docker logs -f 容器名或容器id
  2. docker logs -f 248d0c0b2785

查看容器内部细节

  1. docker inspect 容器id
  2. docker inspect 248d0c0b2785

进入容器内部

  1. docker exec -it 容器名或容器id /bin/bash
  2. docker exec -it 248d0c0b2785 /bin/bash

输入 exit 退出容器内部

文件拷贝

cp 命令实现文件拷贝

  1. docker cp 文件|目录 容器id:容器路径 ----------------- 将宿主机复制到容器内部
  2. docker cp 容器id:容器内资源路径 宿主机目录路径 ----------------- 将容器内资源拷贝到主机上

数据卷 — docker volume

使用数据卷实现宿主机与容器之间的数据共享

数据卷帮助命令

  1. [root@localhost data]# docker volume --help
  2. Usage: docker volume COMMAND
  3. Manage volumes
  4. Commands:
  5. create 创建数据卷
  6. inspect 查看数据卷详细情况
  7. ls 列举出有哪些数据卷
  8. prune 移除无效的数据卷
  9. rm 删除数据卷

创建数据卷

  1. docker volume create 数据卷名 #创建数据卷
  2. docker volume create my-vol

列举数据卷

  1. [root@localhost data]# docker volume ls
  2. DRIVER VOLUME NAME
  3. local my-vol

查看数据卷

  1. docker volume inspect 数据卷名
  2. [root@localhost data]# docker volume inspect my-vol
  3. [
  4. {
  5. "CreatedAt": "2021-08-30T12:04:07+08:00",
  6. "Driver": "local",
  7. "Labels": {},
  8. "Mountpoint": "/var/lib/docker/volumes/my-vol/_data",
  9. "Name": "my-vol",
  10. "Options": {},
  11. "Scope": "local"
  12. }
  13. ]

挂载数据卷

  1. docker run -d --name mytomcat -p 8082:8080
  2. -v my-vol:/usr/local/tomcat/webapps tomcat:8.5-jdk8
  3. # 使用 -v 参数指定将哪个数据卷挂载到哪个目录下,
  4. # 如果 -v 后面指定的数据卷之前没有创建,这里也会自动帮我们创建