docker介绍及基本命令
2019-03-04 本文已影响0人
爱修仙的道友
1. 什么是docker?
- 使用容器让创建、部署、运行应用程序更简单的一个工具
- 创建一个环境,将写好的项目部署到服务器
- 让应用所需的库和依赖环境打包
-
有一点点像虚拟机
image.png
2. 为什么使用docker?
首先,当我们部署项目时,
- 购买服务器。
- 加载操作系统
- 安装所需环境以及应用、包
- 安装django ,将本地程序上传到服务器上面
- 建立日志系统
- 安装nginx服务器,在安装所需环境以及应用、包
- 安装uwsg服务器,
- 配置端口等
使用docker
image.png
3. docker vs vmware(or virtualbox)?
image.pngimage.png
4. docker 架构
主要用于部署和测试,所以没有GUI图形用户界面
image.png
- Docker platform
- Docker Engine
- a server process
- a client cli
-
a rest api interface
image.png
- Docker architecture
- Docker client
- Docker daemon
- Docker registries
- Docker objects
- Images
- Containers
- Services
- Docker Hub 很重要 提供Docker的托管服务,以及安装环境
-
安装docker
https://docs.docker.com/install/linux/docker-ce/ubuntu/ -
docker运行基本指令
参考 http://www.runoob.com/docker/docker-command-manual.html
-
启动
第一种:通过镜像启动一个新的容器:- 首先执行: sudo docker ps -a 查看本地docker容器的情况:
- 然后使用本地的镜像启动一个新的容器:
先执行: sudo docker images 查看本地的镜像;
再根据镜像启动一个容器:sudo docker run 启动参数 镜像id/镜像名称+Tag - 退出容器:sudo docker stop 容器id
- 查看容器: sudo docker ps -a, 可以看到本地的容器情况。
第二种:启动一个停止的镜像:
- sudo docker start 容器id
-
删除
"sudo docker rm 容器id"将容器删除! -
Docker容器开机自动启动:
部署项目服务器时,为了应对停电等情况影响正常web项目的访问,会把Docker容器设置为开机自动启动。在使用docker run启动容器时,使用--restart参数来设置:- restart具体参数值详细信息:
- no,默认策略,在容器退出时不重启容器
- on-failure,在容器非正常退出时(退出状态非0),才会重启容器
- on-failure:3,在容器非正常退出时重启容器,最多重启3次
- always,在容器退出时总是重启容器
- unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
- 例如:
- restart具体参数值详细信息:
docker run -p 8092:80 --name tracker -v /home/lifehaier:/var/www/html -d --restart=on-failure:3 tracker
解释:使用docker run命令运行一个容器,该容器内部监听80端口,与宿主机系统8092端口映射,命名该容器名称为tracker,宿主机系统目录/home/lifehaier与容器内部/var/www/html路径映射,如果容器对应的images路径/var/www/html下面有数据的话,则被宿主机/home/lifehaier路径下面的数据覆盖,-d参数是让容器后台运行,--restart=on-failure:3是指容器在未来出现异常退出(退出码非0)的情况下循环重启3次;tracker 是images名称,容器基于此images进行启动。
- 如果创建时未指定 --restart=always ,可通过update 命令设置
docker update --restart=always <CONTAINER ID>
- 此外,在docker ps查看容器时,对于使用了--restart选项的容器,其可能的状态只有Up或Restarting两种状态。