一、前言
之前对docker了解不多,自从使用了一次之后,就感觉这个产品对开发者实在是太友好了,可以迅速在Linux,window等平台部署服务。常见的有数据库,nginx,消息队列,redis等。利用docker部署上述服务,或者其他的服务非常方便,具体有多方便,看下面的使用。我相信你使用一次时候,不会再想利用原生方式部署或者安装了。
二、安装前操作
1、首先你需要购买一个阿里云服务器,这里就不多说了。请读者自行购买,或者是使用虚拟机安装Centos也可以。
2、如果使用阿里云服务器,需要从控制台获得服务器的公网ip和密码。笔者使用的是xshell登录云服务器。
3、在Linux上安装docker,并且开启docker服务
4、拉取docker远程镜像,并且创建实例,开启实例服务
5、测试服务
登录服务器
1、打开XShell,创建会话,并且输入主机地址,云服务器填写公网IP
2、点击会话属性左侧的用户身份认证,在出现的界面中填写用户名和密码,也可以选择使用更加安全的public key 认证模式
3、点击确认,如果一切没有问题,就已经登录成功了。如果出现如下界面,就表示你已经使用xshell成功登录阿里云服务器。
到此,本步骤已经完成,下面就是docker的安装了
三、docker安装
需知:docker支持centos7或者是centos8,centos6安装或者运行可能会出现问题。
3.1、使用官方脚本安装命令安装
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
这个命令敲下后,等待时间可能会有点久,请耐心等待。
出现如下图片场景,标识已经安装成功
3.2、手动安装
3.2.1 卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.2.2 安装 Docker Engine-Community
使用 Docker 仓库进行安装:在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
设置仓库:
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
使用以下命令来设置稳定的仓库:
- 官方源
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 阿里源
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 清华源
sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community
sudo yum install docker-ce docker-ce-cli containerd.io
Docker 安装完默认未启动。并且已经创建好 docker 用户组,但该用户组下没有用户。
四、docker使用
4.1、启动docker
如果你是root用户,可以直接运行如下命令
systemctl start docker
否则,你需要执行如下命令
sudo systemctl start docker
又或者添加一个docker用户组,创建用户,用户对docker服务的操作。这里不多赘述,到这里,安装和启动docker就已经完成
4.2、查看docker是否启动成功
输入如下命令,查看是否存在docker进程
ps -ef | grep docker
出现如下界面,标识启动docker服务成功
4.3、测试docker基本服务是否正常
每次学一个新东西,hello-world 对于我们来说,这个是必经之路,不仅仅标识我们创建成功,并且运行程序也已经成功。执行如下命令
# root 用户
docker run hello-world
# 非root用户
sudo docker run hello-world
其实这个时候我们并没拉取镜像,创建实例,我们直接就运行了,这个命令执行如果没有相关的实例或者镜像会帮助我们拉取镜像,创建实例,然后运行。出现如下界面,就表示成功安装docker了
4.4、使用docker安装nginx
这里就再使用docker安装nginx,提供一个基础案例。
首先,我们市需要服务镜像的,你可以理解为一个nginx的基本安装文件,那就暂且这么理解吧。
4.4.1 查找镜像
docker search nginx
执行之后,我们可以看到如下图所示,这是在docker镜像库中搜索出来的和nginx相关的镜像,通常第一个就是我们需要的,与关键字匹配度最高的一个镜像
也可在dockerhub库查看你需要的镜像,自行查看。
4.4.2 拉取最新的nginx镜像
这里我们拉取最新的进行。
docker pull nginx:latest
4.4.3 查看已经拉取了的镜像
docker images
这里就可以看到我们之前的hello-world 的镜像,包括刚刚拉取的nginx的镜像
4.4.4 运行容器
docker run --name nginx-test -p 8080:80 -d nginx
参数说明
- -name nginx-test 容器名称,关闭或者启动可以使用改名称
- -p8080:80 端口映射 ,将本地 8080 端口映射到容器内部的 80 端口。
- -d nginx 表示容器一直在运行
启动成功,这里绑定80端口即 -p 80:80
注意,这里阿里云服务器需要配置安全组,否则无法访问的。阿里云的安全组默认不开放80端口,需要自己配置。
成功打开nginx主页
如果存在外网打不开的情况可以尝试使用如下命令,检测本地是否可以访问容器服务。官方nginx默认是开启80端口,所以可以尝试访问80端口,如果可以成功访问,那么有可能是安全组配置问题。
curl localhost:80
4.4.5 停止容器
停止单个容器
docker stop 容器id
停止所有的容器
docker stop $(docker ps -aq)