Docker入门

本文详细介绍了Docker的安装步骤,包括卸载旧版本、配置镜像仓库、安装Docker、启动服务以及验证安装。此外,还列举了Docker的常用命令,如查看和管理镜像、搜索镜像、下载镜像、删除镜像,以及容器的创建、启动、停止、删除等操作。最后,演示了如何使用Docker运行CentOS镜像并进行基本的交互操作。
摘要由CSDN通过智能技术生成

一、Docker安装

1 卸载原有的Docker

yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

2 安装工具包

yum install -y yum-utils

3 配置镜像仓库

# 国外镜像地址
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

## 国内阿里云镜像地址(推荐)
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4 更新yum软件包索引

yum makecache fast

5 安装Docker引擎 ce:社区版 ee:企业版

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

6 启动docker服务

# 启动docker服务
systemctl start docker

# 查看docker版本
docker version

7 Docker hello-word

docker run hello-world

8 查看docker镜像

[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    bf756fb1ae65   13 months ago   13.3kB

9 了解:卸载Docker

# 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 删除目录:docker默认的工作路径
rm -rf /var/lib/docker

二、Docker常用命令

1 帮助命令

docker version      # 显示docker的版本信息
docker info         # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help  # 帮助命令 
  • 帮助文档的地址:https://docs.docker.com/engine/reference/

2 镜像命令

2.1 docker images:查看所有本地主机上的镜像

[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    bf756fb1ae65   13 months ago   13.3kB

# 解释
REPOSITORY  镜像的仓库源
TAG         镜像的标签
IMAGE ID    镜像的id
CREATED     镜像的创建时间
SIZE        镜像的大小

# 可选项
-a, --all             # 列出所有的镜像
-q, --quiet           # 只显示镜像的id

2.2 docker search:搜索镜像

[root@localhost ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10455     [OK]
mariadb                           MariaDB is a community-developed fork of MyS…   3886      [OK]

# 可选项,通过收藏来过滤
--filter=STARS=3000     # 搜索收藏大于3000的镜像

2.3 docker pull:下载镜像

# 下载镜像 docker pull 镜像名[:tag]
[root@localhost ~]# docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql  # 不指定tag,默认下载最新版:latest
a076a628af6f: Pull complete         # 分层下载,docker image的核心,联合文件系统
f6c208f3f991: Pull complete
88a9455a9165: Pull complete
406c9b8427c6: Pull complete
7c88599c0b25: Pull complete
25b5c6debdaf: Pull complete
43a5816f1617: Pull complete
1a8c919e89bf: Pull complete
9f3cf4bd1a07: Pull complete
80539cea118d: Pull complete
201b3cad54ce: Pull complete
944ba37e1c06: Pull complete
Digest: sha256:feada149cb8ff54eade1336da7c1d080c4a1c7ed82b5e320efb5beebed85ae8c     # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest      # 真实地址

# docker pull mysql 
等价于 
# docker pull docker.io/library/mysql:latest

# 指定版本下载
[root@localhost ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
a076a628af6f: Already exists
f6c208f3f991: Already exists
88a9455a9165: Already exists
406c9b8427c6: Already exists
7c88599c0b25: Already exists
25b5c6debdaf: Already exists
43a5816f1617: Already exists
1831ac1245f4: Pull complete
37677b8c1f79: Pull complete
27e4ac3b0f6e: Pull complete
7227baa8c445: Pull complete
Digest: sha256:b3d1eff023f698cd433695c9506171f0d08a8f92a0c8063c1a4d9db9a55808df
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

2.4 docker rmi:删除镜像

# 删除指定的镜像
[root@localhost ~]# docker rmi -f 镜像id

# 删除多个镜像:以空格隔开
[root@localhost ~]# docker rmi -f 镜像id 镜像id

# 删除全部的镜像
[root@localhost ~]# docker rmi -f $(docker images -aq)

3 容器命令

  • 下载一个centos镜像来测试学习
docker pull centos

3.1 docker run:新建容器并启动

docker run [可选参数] image

# 参数说明
--name="Name"   容器名称
-d              后台方式运行
-it             使用交互方式运行,进入容器内查看
-p              指定容器的端口
    -p ip:主机端口:容器端口
    -p 主机端口:容器端口(常用)
    -p 容器端口
    容器端口
-P              随机指定容器的端口

# 测试
# 启动并进入容器
[root@localhost ~]# docker run -it centos /bin/bash
[root@271e0738fb67 /]# ls
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr

# 停止并退出容器
[root@271e0738fb67 /]# exit
exit
[root@localhost ~]#

# 容器不停止退出
Ctrl + P + Q

3.2 docker ps:列出所有运行的容器

docker ps   # 列出当前正在运行的容器
    -a      # 列出当前正在运行的容器和历史运行过的容器
    -n=?    # 列出最近创建的容器,?:要显示的个数
    -q      # 只显示容器的编号

3.3 docker rm:删除容器

docker rm 容器id    # 删除指定的容器,不能删除运行中的容器
    -f      # 强制删除,可以删除运行中的容器
docker rm -f $(docker ps -aq)   # 删除全部容器
docker ps -a -q|xargs docker rm # 删除全部容器

3.4 启动和停止容器

docker start 容器id     # 启动容器
docker restart 容器id   # 重启容器
docker stop 容器id      # 停止当前正在运行的容器
docker kill 容器id      # 强制停止当前容器

3.5 其他常用命令

  • 后台启动命令
# docker run -d 镜像名

常见的坑:docker容器使用后台运行,就必须要有前台进程,docker发现没有应用,就会自动停止
  • 查看日志
docker logs 容器
    -tf             # 显示日志
    --tail number   # 要显示的日志条数
  • 查看容器中的进程信息
docker top 容器id
  • 查看镜像的元数据
docker inspect 容器id
  • 进入当前正在运行的容器
# 进入容器后开启一个新的终端,可以在里面操作(常用)
docker exec -it 容器id bash/shell
# 进入容器正在执行的终端,不会启动新的进程
docker attach 容器id bash/shell
  • 从容器内拷贝文件到宿主机上
docker cp 容器id:容器内文件路径 宿主机路径
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值