Docker并非是一个通用的容器工具,它依赖于已存在并运行的Linux内核环境。如果想在其他系统上部署Docker,就必须先安装一个Linux环境(可使用VMware Workstation或Oracle VM Virtualbox虚拟机软件),然后再安装Docker。
其实,为了其他系统更方便安装和使用Docker,Docker也推出了针对Windows 10和MaxOS系统的Docker Desktop,针对Win7、Win8系统的Docker Toolbox。它们本质上也是先在虚拟机中安装Linux然后再安装Docker的方法,Docker Desktop需要开启Hyper-V(微软开发的虚拟机),Docker Toolbox工具集包含了Oracle VM Virtualbox虚拟机。启动Docker Desktop或Docker Toolbox,相当于启动装有Docker的Linux系统。
本文讲解在Ubuntu系统上安装Docker的方法。其他系统可参考「Docker 教程」
一、Ubuntu 系统 Docker 安装
1.1前提准备
Docker 要求 Ubuntu 系统的内核版本高于3.10,可用 uname -r
命令查看当前内核版本。
Ubuntu 系统内核版本 4.10.0 支持 Docker,可以进行 Docker 的安装操作,如下图:
1.2下载并安装 Docker
执行 wget -qO- https://get.docker.com/ | sh
命令,输入主机密码后,就会下载脚本并安装 Docker 及其依赖包,如下图:
等待几分钟,出现下图所示的提示信息,说明安装成功。
(提示信息表明,root
用户可以使用 Docker,当前用户 liyunfei
还不可使用 Docker。必须先执行 sudo usermod -aG docker liyunfei
授权命令,将 liyunfei
用户添加到 docker
组中,并 退出系统重新登录
,方可生效。)
执行 sudo su -
命令切换到 root
用户下,执行 docker ps
命令成功。
然后我们执行 sudo usermod -aG docker liyunfei
命令,并退出系统。
(如果 Docker 服务没有起来,可执行 sudo service docker start
启动Docker服务。)
重新登录系统,在 liyunfei
用户下执行 docker ps
命令成功,如下图:
1.3测试运行 hello world
使用 docker run hello-world
命令,下载 hello-world:latest
镜像包并启动容器,测试成功如图:
二、镜像加速器配置
国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置国内镜像加速器。
Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:
- Docker 官方提供的中国 registry mirror
https://registry.docker-cn.com
- 阿里云加速器(需登录账号获取)
- 七牛云加速器
https://reg-mirror.qiniu.com/
我们以 https://reg-mirror.qiniu.com/ 为例,介绍如何配置镜像加速器。
首先,在 /etc/docker/daemon.json
中写入如下内容,指定镜像加速器的服务地址:
{
"registry-mirrors": [
"https://reg-mirror.qiniu.com/"
]
}
注意:一定要保证该文件符合 json 规范,否则 Docker 将不能启动。
其次,添加 daemon.json
后,重新启动 Docker 服务。
sudo systemctl daemon-reload
sudo systemctl restart docker
演示案例如下图所示:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://reg-mirror.qiniu.com/"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三、Docker
常用命令
3.1常用命令列表1
docker ps -a #列出所有的容器
docker ps #列出所有活跃的容器
docker ps -l #列出最近创建的容器
docker info #查看 Docker 的系统信息
docker search ubuntu #通过 search 子命令搜索 Docker Hub 上的镜像
docker run -it ubuntu #启动容器,并进入交互模式
docker rm 容器ID #删除容器
exit #退出容器
示例如下图:
docker ps -a
、docker ps
、docker ps -la
命令:
docker run -it ubuntu
、exit
命令:
3.2常用命令列表2
docker pull tomcat:9-jre8-slim #用pull命令将镜像下载下来
docker push 172.18.232.50/si-tech/tomcat:9-jre8-slim #用push命令将本地镜像上传到镜像仓库
docker images #列出本地镜像
docker image ls #只显示顶层镜像
docker image ls -a #显示包括中间层镜像在内的所有镜像,需要加-a参数
docker image ls tomcat #根据条件列出部分镜像
docker rmi 镜像ID #根据镜像ID删除镜像
docker rmi <仓库名>:<标签> #根据镜像名称删除镜像
docker export <CONTAINER ID> > /home/export.tar #Export命令用于持久化容器(不是镜像)
docker save busybox-1 > /home/save.tar #Save命令用于持久化镜像(不是容器)
docker import - busybox-1-export:latest #与docker export对应,导入压缩包生成镜像(可重新指定镜像名字)
docker load < /home/save.tar #与docker save对应,导入压缩包生成镜像
示例如下图:
docker pull tomcat:9-jre8-slim
命令:
docker images
命令:
docker save tomcat:9-jre8-slim > ./tomcat-9.tar
命令: