Docker的安装和常用功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sqh201030412/article/details/80138279
一.如何安装Docker

docker(mac) 下载:

其余直接参考:
centos需要到7才可.

配置镜像加速(阿里云)


二.操作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目录也映射到容器中.

猜你喜欢

转载自blog.csdn.net/sqh201030412/article/details/80138279
今日推荐