Docker的安装和常用功能

Posted 当以乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker的安装和常用功能相关的知识,希望对你有一定的参考价值。

一.如何安装Docker
docker(mac) 下载: https://www.docker.com/community-edition#/download
其余直接参考: centos需要到7才可. https://yq.aliyun.com/articles/110806?spm=5176.8351553.0.0.3f301991AiXEXn
配置镜像加速(阿里云) https://cr.console.aliyun.com/?spm=5176.1971733.0.2.6c045aaaK85yLs&accounttraceid=6a931edc-f54f-4914-8259-380e89bfc4a4#/accelerator

二.操作docker 明白两个概念 image 和 container 对于无状态的服务(web 服务) 直接运行image即可 对于有状态的服务(jenkens,solr,zookeeper..) 需要挂载虚拟目录,对其运行期间的数据进行持久化.

使用镜像
1.docker run --name webserver -d -p 80:80 nginx 用nginx镜像启动一个容器,命名为webserver,并且映射端口到80.
2.docker exec -it webserver bash 使用该命令进行指定容器内部,进行命令行操作
3.docker diff webserver 查看容器的变化
4.docker commit [选项] <容器ID或者容器名称> [<仓库名>[:<标签>]]
将容器制作成一个镜像
5.查看镜像列表
docker image ls 指定名称 docker image ls nginx
6.查看镜像历史纪录 docker history nginx:latest
7.Dockerfile 命令点
from 指定基础镜像 必须指定
run 执行命令 形式1: shell格式:run <命令> 形式2: exec格式: run ["可执行文件","参数1","参数2"]
docker build [选项] <上下文路径/URL/>
docker build -t nginx:v3 . 使用当前目录下 dockerfile构建镜像 nginx:v3

copy 复制文件
copy <源路径>.....<目标路径>
add 更加复杂的复制功能
相对copy 多了自动解压缩功能,仅仅文件需要解压缩时候使用

CMD 容器启动命名
cmd和run类似,两种格式: shell格式:CMD <命令> exec 格式: cmd ["可执行文件","参数1","参数2"]
ENTRYPOINT 入口点

ENV 设置环境变量 ENV <key> <value> ENV <key1>=<value1> <key2>=<value2>
VOLUME 定义匿名卷

操作容器
1.启动容器 两种情况,新建一个容器启动或者将在终止状态的容器启动 新建并且启动: docker run 启动一个终止容器:docker container start 后台运行: docker run -d xxxxx 2.终止容器 : docker container stop 查看终止容器: docker container ls -a 重新启动: docker container restart
进入容器: docker attach xxxxid docker exec -it xxxxid bash 推荐 退出不会终止容器 删除容器 docker container rm xxxxx 删除终止状态容器 docker container prune 清理所有处于终止状态的容器

数据管理: 数据卷: volume 创建数据卷: docker volume create my-vol 查看数据卷:docker volume ls 挂载数据卷: docker run -d -p \\ --name web \\ -- mount source=my-vol,target=/webapp \\ training/webapp \\ python app.py 删除数据卷: docker volume rm my-vol 清理无主数据卷: docker volume prune 查看数据卷具体信息: docker inspect web 网络映射: 映射容器端口到本地端口: docker run -d -p 5000:5000 training/webapp python app.py 查看端口配置: docker port nostalgic_morse 5000 容器互联: 创建新的docker网络: docker network create -d bridge my-net 运行一个容器连接到my-net网络 docker run -it --rm --name busybox1 --network my-net busbox sh 再运行一个容器连接到my-net网络 docker run -it --rm --name busybox2 --network my-net busbox sh 在任意容器内 ping 容器名称 比如busybox1 发现已经能联通了
Docker Compose 适用多个容器间的连接 配置DNS两种方式: 1.使用宿主机的DNS配置 2.使用Docker配置文件来配置 /etc/docker/daemon.json

三,实战,docker启动jenkins 1.下载jenkins 镜像 docker pull jenkins
2.本地配置相关以来程序 maven 3.启动jenkins
docker run --name jenkins -d -p 8080:8080 -p 50000:50000 -u root -v /app/jenkins:/var/jenkins_home -v /app/maven:/var/local/maven jenkins
这里因为jenkins是有状态的服务(会产生磁盘数据),所以将其产生的数据映射到本机中进行持久化,jenkins构建Java项目时,需要以来Maven来打包,所以将本地的maven目录也映射到容器中.

以上是关于Docker的安装和常用功能的主要内容,如果未能解决你的问题,请参考以下文章

docker 常用命令大全

Docker常用命令和功能介绍

Docker Centos 64位 安装及常用命令

Docker Centos 64位 安装及常用命令

Docker安装和常用命令

Docker及常用软件的安装部署