Docker 快速入门(腾讯云网页版)

发布时间 2023-04-16 17:02:05作者: Auion

实验简介

  本实验将演示如何在Centos中为 Docker配置镜像加速,如何拉取和查看 Docker镜像,如何创建、查看和启动容器与删除容器和镜像等Docker基本操作。

  实验网址:https://cloud.tencent.com/lab/courseDetail/768138035069433

实验资源

  云服务器CVM、CentOS 7.8 64位。

实验内容

  本次实验的具体内容为:卸载旧版本的 Docker、安装相关依赖、安装最新版的 Docker、启动 Docker、 配置镜像加速、运行第一个容器、拉取镜像、创建容器、查看容器、启动容器、停止容器、删除终止状态的容器、删除运行状态的容器、删除指定镜像、删除所有镜像。

实验过程与结果

  列出系统中已安装的docker包:

  yum list installed | grep docker

 

  卸载已安装的docker包:

  yum -y remove docker-ce-cli.x86_64

 

  yum -y remove docker-ce.x86_64

 

  yum -y remove containerd.io

 

  如果系统中没有 Docker,则直接进入下一步。

  安装相关依赖,安装 Docker 所需的依赖:

  yum install -y yum-utils device-mapper-persistent-data lvm2

 

 

 

  添加 Docker 的 yum 源:

  yum-config-manager --add-repo https://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker

 

  安装最新版的 Docker

  yum 安装 Docker:

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

 

 
 
 

  验证 Docker 版本以确认安装成功:

  docker version

  如图所示,Docker 安装成功:

 

  启动 Docker

  执行以下命令启动 Docker:

  systemctl start docker

 

  然后将 Docker 设置为开机启动:

  systemctl enable docker

 

  查看 Docker 运行状态:

  service docker status

  如图所示,Docker 正在运行:

 
 

  运行 Docker 容器

  配置镜像加速

  创建 Docker 配置目录:

  mkdir -p /etc/docker

 

  配置 Docker 镜像加速源:

  tee /etc/docker/daemon.json <<-'EOF'{

    "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]

  }

  EOF

 

  重启守护进程并重启 Docker:

  systemctl daemon-reload && systemctl restart docker

 

  重启完成后,镜像加速即配置成功。

  运行第一个容器

  使用 docker run 命令可以直接拉取镜像并运行一个容器,例如:

  docker run --name=hello hello-world

 

  这行命令会直接拉取 hello-world 镜像,然后运行一个 hello 容器,可以通过以下命令查看该容器的进程:

  docker ps -a

  可以看到 hello 容器已经运行过了:

 

  拉取镜像

  我们也可以一步一步来运行容器。以 calibre-web 为例,先拉取     Docker 镜像:

  docker pull johngong/calibre-web

 

  查看现有的镜像:

  docker images

  如图所示,calibre-web 镜像拉取成功:

 

  创建容器

  镜像拉取成功后,根据镜像创建容器:

  docker create --name=calibre-web -p 80:8083 -v /data/calibre-web/library:/library -e WEBLANGUAGE=zh_CN johngong/calibre-web

 

  其中:

  docker create 是创建容器的命令

  --name=calibre-web 表示创建的容器的名称

  -p 80:8083 表示该容器将 80 端口映射到 8083 端口

  -v /data/calibre-web/librery:/libray 表示该容器将 /data/calibre-web/library 目录映射为 /library 目录

  -e WEBLANGUAGE=zh_CN 表示该容器定义了一个变量,变量名是 WEBLANGUAGE,变量值是 zh_CN

  johngong/calibre-web 是容器的镜像,这里也就是我们前面拉取的镜像

  查看容器

  使用如下命令可以查看现有的全部容器:

  docker ps -a

  如图所示,calibre-web 容器创建成功:

 

  与 docker run 不同的是,docker create 创建出来的容器不会直接运行。可以查看下运行中的容器进程:

  docker ps

  可以看到,没有任何容器在运行:

 

  启动容器

  使用以下命令启动刚才创建好的容器:

  docker start calibre-web

 

  查看容器进程:

  docker ps

  可以看到,calibre-web 容器正在运行: 

  停止和删除 Docker 容器

  停止容器

  要停止正在运行的容器有两种方法。一种是 docker stop,例如:

  docker stop calibre-web

  使用 docker ps 命令可以看到,正在运行的容器中已经没有 calibre-web 了:

 

  另一种方法是 docker kill,例如:

  docker kill calibre-web

 

  此时出现“Error”的原因是之前已经停止了calibre-web。可以选择先用命令行“docker start calibre-web”启动calibre-web,在使用命令行“docker kill calibre-web”停止calibre-web。 

  使用 docker ps 命令可以看到,正在运行的容器中已经没有 calibre-web 了:

  这两种方法的区别在于,docker stop 会给时间让容器保存最后的运行状态,而 docker kill 则会直接关闭容器。

  删除终止状态的容器

  使用 docker rm 命令可以删除指定的容器,例如:

  docker rm hello

 

  查看所有容器:

  docker ps -a

  已经看不到 hello 容器了:

 

  删除运行状态的容器

  我们先重新运行 calibre-web 容器:

  docker start calibre-web

 

  这时候我们用 docker rm 删除该容器:

  docker rm calibre-web

  命令行会报错:

 

  要删除运行状态的容器,需要带上 -f 选项:

  docker rm -f calibre-web

 

  正在运行的 calibre-web 会被强制停止并删除。

  删除指定镜像

  使用 docker rmi 命令可以删除指定的镜像,例如:

  docker rmi hello-world 

  查看现有镜像:

  docker images

  已经看不到 hello-world 镜像了:

 

  删除所有镜像

  我们可以通过 docker rmi 跟镜像 ID 来删除指定的镜像。而获取所有镜像 ID 的命令是:

  docker images -q

  如图所示,命令行列出了剩余所有镜像的 ID:

 

  我们可以用这些 ID 一次性删除所有镜像:

  docker rmi `docker images -q`

  现在用 docker images 已经看不到镜像了: