1.安装Docker
- 这里我们将Docker安装到CentOS7上,最好是将yum更新下
sudo yum update
2. 安装需要的软件包yum-util(如果不安装则第三步会出现yum-config-manager: command not found的错误), yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3. 设置yum源,这里设置为阿里云,如果不设置将会连接国外的站点,可能会安装失败
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果yum之前就设置好了,就可以进行docker的安装了
1. 安装docker,这里安装的是docker-ce(社区版),而docker-ee是企业版,是收费的
sudo yum install docker-ce
2.等待安装,并根据提示做好选择,安装完成后输入如下命令:
docker -v
结果如下:
说明docker安装成功了
2.设置ustc的镜像
ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。
创建/etc/docker/daemon.json(这里docker文件夹和daemon.json文件都需要创建)
然后编辑daemon.json
vi /etc/docker/daemon.json
写入如下内容(或者使用阿里云镜像,配置方法可参考https://blog.csdn.net/sinat_32247833/article/details/79767263):
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
3.Docker的启动与停止
1. 启动docker(systemctl 命令是系统服务管理器指令)
systemctl start docker
然后查看docker状态
systemctl status docker
出现如下结果说明docker已启动
2. 停止docker
systemctl stop docker
active后面显示dead说明已停止
其他指令:
重启docker:systemctl restart docker
开机启动:systemctl enable docker
查看docker概要信息:docker info
查看docker帮助文档:docker --help
4.镜像相关命令
1. 查看镜像
docker images
REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
2.搜索镜像
搜索镜像命令:docker search 镜像名称
docker search 镜像名称
NAME:仓库名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的
3.拉取镜像
拉取镜像就是从中央仓库中下载镜像到本地
docker pull 镜像名称
当pull镜像是如果不指定tag则默认是lastest版本,如下图
如果要指定版本,则加上“:”然后制定名称,例如下载centos7:
docker pull centos:7
4.删除镜像
按镜像ID删除镜像
docker rmi 镜像ID
删除所有镜像
docker rmi docker images -q
5.容器相关命令
查看正在运行的容器
docker ps
查看所有容器(包括运行的和未运行的)
docker ps –a
查看最后一次运行的容器
docker ps –l
查看停止的容器
docker ps -f status=exited
6.创建与启动容器
创建容器命令:docker run
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名(容器名称不能重复)。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
1.交互式方式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
如图:
可以看到不一样了,并且使用docker命令无效,此时是因为我们已经进入到了mycentos的容器里了。并且可以使用centos的命令,此时就相当于一台服务器。
再启动一个窗口连接centos,输入docker ps,可以看到我们启动的容器:
图中的up表示正在运行的容器。
在mycentos容器中输入exit命令则退出容器,再次输入docker ps发现看不到运行的容器了,输入docker ps -a则可以看到之前运行的容器状态为exited
这就是交互式方式运行容器,即当我们退出容器时,容器也停止运行了。
2.守护式方式创建容器
docker run -di --name=容器名称 镜像名称:标签
当出现如图中的一长串字符是则表示容器创建成功。并且输入docker ps时可以看到当前运行的容器。
进入守护式容器:
docker exec -it 容器名称(或者容器ID) /bin/bash
此时输入exit退出,再去查看容器状态发现容器还在运行。这就是守护式方式运行容器。
3.停止与启动容器
停止容器:
docker stop 容器名称(或者容器ID)
启动容器:
docker start 容器名称(或者容器ID)
删除指定的容器:
docker rm 容器名称(容器ID)
7.私有仓库搭建与配置
(1)拉取私有仓库镜像
docker pull registry
(2)启动私有仓库容器
docker run -di --name=registry -p 5000:5000 registry
(3)打开浏览器 输入地址http://192.168.xxx.xxx:5000/v2/_catalog看到`{"repositories":[]}` 表示私有仓库搭建成功并且内容为空
(4)修改daemon.json
vi /etc/docker/daemon.json
vi /etc/docker/daemon.json
添加以下内容,保存退出。
{"insecure-registries":["192.168.xxx.xxx:5000"]}
此步用于让 docker信任私有仓库地址
(5)重启docker 服务
systemctl restart docker