因项目需要,需要将制作好的web接口部署到docker里,方便管理,所以借此机会了解下docker的机制,以及为啥docker那么火。
1. docker安装(宿主机为ubuntu16.04)。官方文档:https://docs.docker.com/install/linux/docker-ce/ubuntu/。
a.sudo apt-get remove docker docker-engine docker.io containerd runc ;卸载docker旧版本,没有则跳过
b.sudo apt-get update ;更新源
c.sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common ;安装依赖
d.curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - ;添加官方匙
e.sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
f.sudo aot-get update
g.sudo apt-get install docker-ce docker-ce-cli containerd.io ;下载安装docker最新版,也可以指定版本安装
h.sudo docker run hello-world. ;下拉hello-world镜像进行验证安装是否成功
2.为docker更换阿里镜像,不然国外的源太慢了。进入到阿里云的容器镜像服务里,如下图所示,按照所提示的进行更改就好了。
3.docker可以将容器打包成本地镜像,通过commit命令。但是不建议用commit去打包镜像,因为镜像会越大越大,不好维护,建议用dockerfile生成基础镜像。
docker commit 容器ID test/xiasan:tag ;test/xiasan是镜像名字,tag是标签名。
4.docker push 可以将本地镜像上传到镜像仓库里,这里使用的是阿里云镜像仓库。
a.先创建一个本地镜像。
b.按照上图进行操作就可以了。这样需要用到的话,直接下拉,再编写dockerfile就可以直接部署应用了。
5.解决只能用root用户执行docker命令,参考官网链接。