Docker入门
常见命令
dockerfile
docker pull 下载镜像到本地 |
命令别名
找到root目录下.bashrc文件
bash
alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"' |
使命令生效
bash
source ~/.bashrc |
数据卷
数据卷是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁
假设在docker nginx中创建html目录,其对应宿主机文件系统位置为
/var/lib/docker/volumes/html/_data
命令 | 说明 | 文档地址 |
---|---|---|
docker volume create | 创建数据卷 | docker volume create |
docker volume ls | 查看所有数据卷 | docker volume ls |
docker volume rm | 删除指定数据卷 | docker volume rm |
docker volume inspect | 查看某个数据卷的详情 | docker volume inspect |
docker volume prune | 清除数据卷 | docker volume prune |
- 执行docker run 命令时,使用 -v数据卷:容器内目录 可以完成数据卷挂载
- 当创建容器时,如果挂在里数据卷且数据卷不存在,会自动创建数据卷
示例:
dockerfile
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx |
本地目录
在执行docker run命令时,如果我们不写挂载,系统会默认挂载匿名卷,但是生成的名字太长,文件目录太深,不易于操作
在执行docker run 命令时 使用-v 本地目录:容器内目录 可以完成本地目录挂载
本地目录必须以“/” 或”./“开头,如果以名称开头,会被识别为数据卷而非本地目录
- -v mysql:/var/lib/mysql 会被识别一个数据卷叫mysql
- -v /mysql:/var/lib/mysql 会被识别为当前目录下的mysql目录
DockerFile
DockerFile就是一个文本文件,其中包含一个个的指令,用指令来说明要执行什么操作来构建镜像。将来DOcker可以根据Dockerfile帮我们来构建镜像,常见指令如下
指令 | 说明 | 示例 |
---|---|---|
FROM | 指定基础镜像 | FROM centos:6 |
ENV | 设置环境变量,可在后面指令使用 | ENV key value |
COPY | 拷贝本地文件到镜像的指定目录 | COPY ./jrell.tar.gz /tmp |
RUN | 执行linux的run命令,一般是安装过程的命令 | RUN tar -zxvf /tmp/jrell.tar.gz && EXPORTS path=/tmp/jrell:$path |
EXPOSE | 指定容器运行时监听的端口,是给镜像使用者看的 | EXPOSE 8080 |
EXTRYPOINT | 镜像中应用启动命令,容器运行时调用 | ENTRYPOINT java -jar xx.jar |
网络
加入自定义网络的容器才可以通过容器名互相访问,Docker的网络操作命令如下:
命令 | 说明 |
---|---|
docker network create | 创建一个网络 |
docker network ls | 查看所有网络 |
docker network rm | 删除指定网络 |
docker network prune | 清楚未使用的网络 |
docker network connect | 使指定容器连接加入某网络 |
docker network disconnect | 使指定容器连接离开某网络 |
docker network inspect | 查看网络详细信息 |
DockerCompose
Docker Compose通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的docker容器的快速部署。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Awei的博客!
评论