Docker学习

CentOS7 安装 Docker

在 CentOS 上安装 Docker 引擎

1. 确定你是 CentOS7 及以上版本

1
sudo cat /etc/redhat-release

2. 卸载旧版本

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

3. yum 安装 gcc 相关

  1. CentOS7 能上外网
  2. sudo yum -y install gcc
  3. sudo yum -y install gcc-c++

4. 安装需要的软件包

1
sudo yum install -y yum-utils

5. 设置 stable 镜像仓库

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

6. 更新 yum 软件包索引

1
sudo yum makecache fast

sudo yum makecache fast 将软件包信息提前在本地索引缓存, 用来提高搜索安装软件的速度, 建议执行这个命令可以提升 yum 安装的速度。

7. 安装 DOCKER CE

1
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

8. 启动 Docker

1
sudo systemctl start docker

9. 测试

1
2
sudo docker version
sudo docker run hello-world

10. 卸载

1
2
3
4
sudo systemctl stop docker
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

镜像加速配置

1. 步骤

  1. 登录阿里云
  2. 打开控制台
  3. 容器 -> 容器镜像服务 ACR
  4. 镜像工具 -> 镜像加速器
  5. 按照操作文档进行配置

2. 配置

针对 Docker 客户端版本大于 1.10.0 的用户

您可以通过修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器

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

Docker 常用命令

1. 帮助启动类命令

1.1 启动 Docker

1
systemctl start docker

1.2 停止 Docker

1
systemctl stop docker

1.3 重启 Docker

1
systemctl restart docker

1.4 查看 Docker 状态

1
systemctl status docker

1.5 开机启动 Docker

1
systemctl enable docker

1.6 查看 Docker 概要信息

1
docker info

1.7 查看 Docker 总体帮助文档

1
docker  --help

1.8 查看 Docker 命令帮助文档

1
docker xxx(command) --help

2. 镜像命令

2.1 列出本地主机上的镜像

options:

  • -a: 列出本地所有的镜像(含历史映像层)
  • -q: 只显示镜像 ID
1
docker image

2.2 搜索某个镜像

options:

  • –limit: 只列出 N 个镜像, 默认 25 个
1
docker search --limit n image

2.3 拉取某个镜像

options:

  • tag: 版本号
1
docker pull image[:tag]

2.4 删除镜像

options:

  • f: 强制删除
1
2
3
docker rmi -f image // 删除单个镜像
docker rmi -f image1:tag image2:tag // 删除多个镜像
docker rmi -f $(docker image -qa) // 删除全部镜像

3. 容器命令

3.1 新建启动容器

有镜像才能创建容器

options:

  • –name: 新容器名
  • -d: 后台运行容器并返回容器 id, 也即启动守护式容器(后台运行)
  • -i: 以交互模式运行容器, 通常与 -t 通常使用
  • -t: 为容器重新分配一个伪输入终端, 通常与 -i 同时使用; 也即启动交互式容器(前台有伪终端, 等待交互)
  • -p: 指定端口映射, 小写 p
  • -P: 随机端口映射, 大写 P
1
docker run -p 80:80 redis:6.0.8 --name=mr01

3.2 列出当前所有正在运行的容器

options:

  • -a: 列出当前所有正在运行的容器 + 历史上运行过的
  • -l: 显示最近创建的容器
  • -n: 显示最近 n 个创建的容器
  • -q: 静默模式, 只显示容器编号
1
docker ps

3.3 退出容器

1
2
exit // 容器会停止
ctrl + p + q // 容器不停止

3.4 启动已停止的容器

1
docker start container

3.5 重启容器

1
docker restart container

3.6 停止容器

1
docker stop container

3.7 强制停止容器

1
docker kill container

3.8 删除已停止的容器

options:

  • -f: 强制删除
1
2
3
docker rm container // 删除某个容器
dokcer rm -f $(docker ps -a -q) // 删除全部容器
docker ps -a -q | | xargs docker rm // 删除全部容器

3.9 查看容器日志

1
docker logs container

3.10 查看容器内运行的进程

1
docker top container

3.11 查看容器内部细节

1
docker inspect container

3.12 与已经启动和运行的容器进行交互

1
docker exec -it container /bin/bash

3.13 从容器内拷贝文件到主机

1
docker cp container:path host_path

3.14 导入和导出容器

1
2
docker export container file_name.tar
docker import file.tar user/image:latest