docker容器技术是一次技术的革命,与虚拟机相比更轻量,给运维带来了很大的便利,在传统的运维需要安装软件服务的时候,会在集群的每台机器中去重复地操作相关指令去安装软件服务,比如mysql,每安装一台机器,这时间成本是线性递增的。如果用docker容器技术,只用制作一个容器镜像,然后保存到镜像库中,其他的机器可以共享这同一个镜像,运行服务仅需要将镜像在容器里运行即可。是不是很便捷。下面聊聊使用。
1、先需要定义docker镜像的制作定义文件一般取之为Dockerfile,放置在项目的根目录
下面是一个简单的dockerfile定义例子
FROM alpine
WORKDIR /usr/src/app
COPY USER_CENTER_SERVER ./
ADD ./ /php_code
CMD [ "/php_code/USER_CENTER_SERVER" ]
解释:
FROM
是镜像的基础镜像,alpine是docker 官方hub里提供的一个mini操作系统
copy是拷贝文件
ADD 也是拷贝文件,区别见官方文档CMD值镜像执行时候需要运行的命令,一个dockerfile只有一个这个命令,超过一个,会执行最后一条
2、使用docker build命令制作镜像
docker image build -f ./scripts/Dockerfile -t usercenter:1.0 .
这个命令的意思是已当前目录为基础的前提下,使用./scripts/Dockerfile的定义,生成一个镜像名为usercenter,tag为1.0的镜像;
3、运行镜像
docker container run --publish 8000:8080 --detach --name test usercenter:1.0
将宿主机8000端口映射到容器的8080,容器在后台运行,取名为test,使用usercenter:1.0镜像
其他命令
docker image ls
列出本地镜像列表
docker image rm usercenter:1.0
删除本队镜像usercenter:1.0
docker stop test2
停止正在运行的名为test2的容器
docker container rm --force usercenter
强制删除本地镜像usercenter
docker image push 远程链接
将镜像推到远程镜像库
docker tag srcname targetname
将本地镜像srcname赋予新的镜像名targetname
本文就说这么多,具体参考官方文档https://www.docker.com/