Docker是什么
Docker是一个开源的应用容器引擎,Docker 能够将开发环境依赖的所有外部软件都打包到 容器 中, 发布的时候将整个 容器 拷贝到云服务器上即可。
Docker 的特点
1、资源隔离(容器和容器之间不会相互影响)
2、高性能(相比于传统的虚拟机)
Docker的安装
博主的环境是 CentOS 3.10.0,大家可以查看自己的环境:
uname -r
具体的安装步骤请参考:https://www.runoob.com/docker/centos-docker-install.html
理解几个概念
1、什么是容器:
容器是独立运行的一个或一组应用;
2、什么是镜像:
Docker 镜像是用于创建 Docker 容器的模板;
镜像和容器之间的关系, 类似于可执行文件和进程的关系;
3、什么是DockerHub:
用于托管镜像的平台;
Docker常用命令
查看所有命令
docker
拉取镜像
docker pull hello-world
运行容器,如果本地不存在则自动拉取
docker run hello-world
查看镜像
docker images
查看容器
# 只列出运行中的容器 docker ps # 列出所有容器(包含未运行的) docker ps -a
停止容器
docker stop [容器ID]
删除镜像(要先删除容器)
docker rmi [镜像名]
删除容器
docker rm [容器ID]
部署流程
这里我是用的是gcc 镜像 所以需要提前安装好,请参考前面的流程;
在这里我们通过Dockerfile的方式创建自己的镜像,下面是Dockerfile的内容:
FROM gcc:latest
RUN mkdir /usr/src/myapp
COPY test.c /usr/src/myapp
WORKDIR /usr/src/myapp
RUN gcc test.c
CMD ["./a.out"]
执行命令
docker build -t mygcc-test:v1
//再次执行
docker images
//这时我们就可以看到在本地镜像中多了一个叫做mygcc-test的镜像,TAG为v1
启动镜像
//执行命令:
docker run -d mygcc-test:v1 //启动镜像
//执行命令:
docker ps //查看容器的运行情况
查看程序运行状态
//接下来我们进入到容器当中,查看a.out程序在后台执行的情况:
docker exec -it mystifying_mclean /bin/bash