欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker入门

程序员文章站 2022-06-16 23:11:51
...

前言

关于什么是docker,以及docker有什么优势等请自行百度,本文章假定你已经了解docker的基本概念

Docker安装

https://blog.csdn.net/lin521lh/article/details/78355433

基本命令

启动:systemctl start docker
停止:systemctl stop docker
重启:systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker
查看docker概要信息:docker info
查看docker帮助文档:docker --help

常用命令

常用命令分为镜像,容器,和其他部分

镜像

查看本地镜像:docker images
搜索镜像:docker search centos
拉取镜像:docker pull tutum/centos
删除镜像:docker rmi 镜像ID
删除所有镜像:docker rmi `docker images -q`
镜像备份:docker save -o mynginx.tar mynginx_i
镜像恢复:docker load -i mynginx.tar

容器

创建删除与启动

交互式方式创建容器:docker run -it --name=mycentos centos:7 /bin/bash
守护式方式创建容器:docker run -di --name=mycentos2 centos:7
进入守护式创建的容器:docker exec -it mycentos2 /bin/bash
停止:docker stop 容器ID
启动:docker start 容器ID
容器保存为镜像:docker commit mynginx mynginx_i
删除容器:docker rm mycentos3
拷贝:docker cp xx.cfg mycentos2:/usr/locar

查看

查看正在运行的容器:docker ps
查看所有容器:docker ps -a
查看最后一次运行的容器:docker ps -l
查看停止的容器:docker ps -f status=exited
查看容器IP:docker inspect [--format='{{.xxxx}}'] mycentos3

其他

目录挂载:docker run -di -v /usr/locar/myhtml"/usr/locar/myhtml --name=mycentos3 centos:7

应用部署

应用部署一般有两种方式,通过命令或者Dockerfile的形式。

命令方式

mysql
	拉取:mysql:docker pull mysql-57-centos7
	创建容器:docker run -di --name=tensquare_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
tomcat
	拉取:docker pull tomcat:7-jre7
	创建容器:docker run -di --name=mytomcat -p 9000:8080 -v /usr/locar/webapps:/usr/locar/webapps tomcat:7-jre7
nginx
	拉取:docker pull nginx
	创建容器:docker run -di --name=mynginx -p 80:80 nginx
redis
	拉取:docker pull redis
	创建容器:docker run -di --name=myredis -p 6379:6379 redis

Dockerfile方式

创建Dockerfile文件
在Dockerfile文件中输入命令
构建镜像:docker build -t='xxxx' .

docker私有仓库

搭建与配置

拉取私有仓库镜像:docker pull registry
启用私有仓库容器:docker run -di --name=registry -p 5000:5000 registry
输入IP:5000/v2/_catalog 返回{"repositories":[]}代表成功
修改文件使docker信任私有仓库地址:vi /etc/docker/daemon.json 添加内容 {"insecure-registries":["192.168.184.141:5000"]}
重启docker:systemctl restart docker

上传镜像到私有仓库

对nginx镜像打标签:docker tag nginx 192.168.183.141:5000/nginx
上传:docker push 192.168.183.141:5000/nginx
再次访问IP:5000/v2/_catalog 返回{"repositories":["nginx"]}

其他机器从私有仓库拉取此镜像

修改文件使docker信任私有仓库地址:vi /etc/docker/daemon.json 添加内容 {"insecure-registries":["192.168.184.141:5000"]}
重启docker:systemctl restart docker
docker pull 192.168.183.141:5000/nginx

Rancher

rancher可以实现容器的扩容与缩容,以及负载均衡器,本处不做阐述。

实现数据的展示和监控

cAdvisor(负载收集容器的随时间变化的数据)
influxDB(负载存储时序数据)
Grafana(负载分析和展示时序数据)