Docker 基础知识
Docker的基本概念和常用的指令
Docker 三大基础组件
仓库(Repository)、 镜像(Image)、 容器(Container)
仓库: Docker 官方提供的一个Docker 的仓库,用来存储已经安装好的镜像。可以通过
# 可以通过search 来查看你想要的的镜像
docker search image-name
# 然后通过pull拉取你想要的镜像
docker pull image-name
# 从而通过 run 运行你拉取下来的镜像
docker run -p 3306:3306 -name TestMysql ‐v /conf/mysql:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD="mysqlpassword"
来拉取镜像。
镜像: 就是一个完整的软件包。
容器: 用户就可以利用Docker镜像创建Docker容器,容器会启动预先定义好的进程与用户交互,对外提供服务。容器都是基于镜像而创建的,基于一个镜像可以创建若干个名字不同但功能相同的容器。
-
docker 可以查看所有的命令 一下是主要的用的几个
-
docker pull 拉取仓库中的镜像
-
docker search 查询仓库镜像
-
docker run 创建并启动Docker 容器
#run 参数说明
# -d 表示可以后台运行
# -name 表示容器名称
# -v 将容器的对应文件进行挂载
# -env 设置环境变量
# -p 对于端口的映射
# --appendonly 这个是直接设置redis 的启动参数 --requirepass
# 这里设置的参数和后面讲的Dockerfile 文件里面的设置run 是差不多的
docker run -p 6377:6379 --name redis -v /d/docker/data/redis:/data -d redis redis-server --appendonly yes --requirepass "sunbird.top“
-
docker ps 查看docker 相关容器的进程
-
docker images 查询已经下载的镜像
-
docker build 自己创建一个镜像
-
docker inspect [] 通过docker id 查询 容器信息
-
docker commit [dockerid] [NAME] 提交docker容器,创建新的镜像
容器管理
-
docker exec + 容器名 + 容器内执行的命令 可以查看容器内部信息
-
docker exec it + 容器的id或者容器名称 可以进入容器内部
-
docker stop 停止已经启动的容器
docker-compose
- docker-compose 是用ymal 文件对于docker 来进行容器操作
安装
sudo curl -L https://github.com/docker/compose/releases/download/1.6.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
将docker-compose 设置为可执行文件
sudo chmod +x /usr/local/bin/docker-compose
创建一个文件夹 wordpress ,在文件夹下创建yml 文件:
wordpress : ## 容器名称
image : wordpress ## 镜像名称
links : ## 容器互联
- db : mysql
ports :
- 8080:80 ## 端口映射
db : ##第二个容器
image : mysql
environment : ## 环境变量设置
MYSQL_ROOT_PASSWORD: example
然后可以通过 docker-compose up 来启动
cd ../
/woedpress &&docker-compose up
Docker 镜像
获取镜像
docker search ubuntu 查询镜像
docker pull ubuntu 从dockerHub 上面拉取镜像
## 如果从非官方的仓库下载,则需要在仓库名称前指定完整的仓库地址。例如从网易蜂巢的镜像源来下载ubuntu:14.04镜像,可以使用如下命令,此时下载的镜像名称为hub.c.163.com/public/ubuntu:14.04:
docker pull hub.c.163.com/public/ubuntu:14.04
## 查看本地的所有的镜像
docker images
##还可以使用docker tag命令来为本地镜像任意添加新的标签。例如添加一个新的myubuntu:latest镜像标签:
docker tag ubuntu:latest myubuntu:latest
##使用docker inspect命令可以获取该镜像的详细信息,包括制作者、适应架构、各层的数字摘要等
docker inspect ubuntu
镜像的分层
镜像所占用的磁盘空间远远小于所有镜像之和,因为Docker 镜像是采用分层机制,相同部分独立成层,只需要存储一份就可以了。
分层有两个特性: 一个是已经有的分层只能读,不能修改,另外上一个镜像优先级高于底层镜像
可以通过 docker history 来查看docker 镜像的分层
Dockerfile
Dockerfile 用来管理镜像
FROM ## 表示镜像是基于某一个镜像上面进行构建的
MAINTAINER ## 指定该镜像的创建者
ENV ## 设置环境变量
RUN ## 运行shell 命令如果有多条命令可以用“&&”连接。
COPY ## 讲编译机本地文件拷贝到镜像文件系统中
EXPOSE ## 指定的监听端口
ENTRYPOINT ##这个关键字是欲执行命令,在创建镜像时不执行,等到使用镜像的时候再执行