上一篇博客我们已经在 Linux 上安装好了 docker,这篇博客主要讲解镜像的相关命令,以及配置阿里云镜像加速。
1、搜索镜像:docker search XXX 搜索镜像,比如 java。可使用 docker search命令搜索存放在 Docker Hub 地址:https://hub.docker.com/ (这是docker官方提供的存放所有docker镜像软件的地方,类似maven的中央仓库)中的镜像。执行该命令后, Docker就会在Docker Hub中搜索含有 java这个关键词的镜像仓库。
docker search XXX
2、下载镜像:docker pull XXX(我们先配置阿里云镜像加速,否则就是龟速了)
docker pull java:8
3、列出已下载的镜像:docker images
docker images
4、删除指定镜像:docker rmi XXX是镜像ID
docker rmi faer5367rrwd
配置阿里云镜像加速
访问外网都是龟速,我们先在 docker 环境配置阿里云镜像。
1、打开地址:https://cr.console.aliyun.com/cn-hangzhou/mirrors
2、使用支付宝 or 钉钉扫码登录。(放心,是免费的。首次登录需要注册。)
3、打开镜像工具->镜像加速器,找到 CentOS。其中,sudo 表示 root 权限。
4、按照步骤,先创建一个目录。
sudo mkdir -p /etc/docker
结果:
然后,复制中间那一段粘贴进去,回车,如图:
结果:
然后输入 EOF,回车:
可以使用命令查看配置信息是否写入:
cat /etc/docker/daemon.json
结果:
最后,执行以下两句话,重新加载 docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
结果:
OK,阿里云镜像加速配置完毕。
下载镜像文件
配置好阿里云镜像之后,我们开始下载需要的镜像文件。
1、下载 Java 镜像,我们指定版本号是 8,否则会默认下载最新的版本。
docker pull java:8
结果:第一次下载会停顿几秒,后面就很快下载好了。
查看镜像:docker images
2、下载最新版的 nginx 镜像:
docker pull nginx
结果:
容器相关命令
1、启动容器的一般命令为:docker run [设置参数] 宿主机的端口号:docker镜像端口号 镜像文件,比如启动 nginx 容器,将 nginx 容器的 80 端口映射到宿主机的 81 端口,访问的时候就是:
http://Docker宿主机 IP:81/
docker run -d -p 81:80 nginx
说明:
-d:后台运行
-p:开放容器端口映射到宿主机端口
需要注意的是,使用 docker run命令创建容器时,会先检查本地是否存在指定镜像。如果本地不存在该名称的镜像, Docker就会自动从 Docker Hub下载镜像并启动一个 Docker容器。
我们实际启动一下 nginx 容器,启动结果:
2、列出运行中的容器:docker ps -a
docker ps -a
结果:我们经常使用到容器 ID。
3、查看容器信息:docker inspect 容器ID
docker inspect 容器ID
比如我们查看我们刚才启动的 nginx 容器信息:
docker inspect d28711ba3325
结果:
说明:容器也有自己的 IP 地址,我们可以使用 curl 命令在虚拟机上访问(默认是80端口,不用写):
curl 172.17.0.2
结果:
4、查看容器日志(经常用到):docker logs 容器ID
如查看刚才 nginx 的容器信息:
docker logs d28711ba3325
结果:
5、访问我们刚才启动的 nginx 信息:http://192.168.0.106:81/
说明我们的 nginx 启动成功了。
6、停止容器:docker stop 容器ID
比如我们停止刚才启动的 nginx 容器:
docker stop d28711ba3325
结果:
7、重启容器(停止的容器、正在运行的容器都可以重启):docker restart 容器ID
docker restart d28711ba3325
结果:
8、进入容器:docker exec -it 容器ID /bin/bash
docker exec -it d28711ba3325 /bin/bash
说明:因为我们之前启动的时候加了参数 -d,docker 容器就进入了后台运行。因此我们进入容器时,需要在后面增加参数 /bin/bash,否则无法进入到容器。除非启动的时候没有加参数 -d
推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
9、退出容器(确保是在容器里):exit
10、删除容器:docker rm -f 容器ID
docker rm -f d28711ba3325
结果:
OK,这篇博客讲解到这。