使用docker记录
项目需要在docker中部署,以便在其他服务器直接部署该docker,记录如下:
实际操作流程:
0、服务器环境:centos7.5
1、查看docker服务是否安装并启动:
systemctl status docker
2、没有docker服务,安装:
yum install docker
查看docker服务状态:
systemctl status docker
3、下载需要的系统镜像文件:
docker image pull centos:7.5.1804
查看镜像
docker images
4、用下载的镜像运行容器:
docker run --name=allInOne -d -it -p -p 80:80 -p 443:443 --privileged=true cf49811e3cdb /usr/sbin/init
(cf49811e3cdb为docker images命令查到的镜像ID;allInOne为自定义的容器名称)
查看容器
docker ps
5、进入容器的系统:
docker exec -it allInOne /bin/bash
(容器名称也可以换成容器的ID,ID的前几位即可)
6、在容器中安装自己项目的依赖并部署项目。
7、退出容器:
exit(容器内执行)
8、将此容器创建为镜像:
docker commit a404c6c174a2 allInOne:v1;
(a404c6c174a2为docker ps命令查到的容器ID)
9、打包镜像:
docker save -o 不重要的压缩包名.tar allInOne:v1;
将 不重要的压缩包名.tar 弄到需要部署项目的其他服务器
10、导入镜像:
docker load < 不重要的压缩包名.tar
运行导入的镜像
docker images
docker run --name=allInOne -d -it -p -p 80:80 -p 443:443 --privileged=true cf49811e3cdb /usr/sbin/init
常用命令总结:
下载并启动docker服务,类似下载vmvare软件。
yum install docker
下载镜像,类似下载系统ios;
docker image pull centos:7.5.1804
创建新容器,类似安装虚拟机;
docker run --name=allInOne -d -it-p 80:80 -p 443:443 --privileged=true cf49811e3cdb /usr/sbin/init
进入容器,类似进入虚拟机系统;
docker exec -it allInOne /bin/bash进入。
退出容器
exit
将容器创建为镜像,类似保存快照;
docker commit -a “不重要的作者” -m “不重要的说明” a404c6c174a2 allInOne:v1;
打包镜像,类似导出快照;
docker save -o allInOnetar allInOne:v2;
导入镜像;
docker load < allInOne.tar
docker import allInOnetar allInOne:v2
启动容器,类似启动虚拟机;
docker start centos;
停止容器:
docker stop centos;
查询所有的容器(包括停止的):
docker ps -a
查看镜像:
docker images
删除容器:
docker rm 容器名称或ID
删除镜像
docker rmi 镜像名称或ID
拷贝文件到镜像
docker cp 本地路径 镜像名:容器系统路径
例如:
docker cp /opt/test.txt centos:/opt
将本地/opt下test.txt文件 复制到容器名称为centos的/opt路径下
docker cp /opt/test/ centos:/opt/
将本地/opt下test目录及其中文件 复制到容器名称为centos的/opt路径下
其他:
docker是服务,和apache、mysql等差不多,类似PPT这款软件;
image是镜像,可以通过镜像启动 容器,类似PPT模板;
容器是根据image启动的一个个实例,可以自定义名称,类似PPT文件。