Docker
Docker概述
docker为什么出现
一款产品:开发–上线,两套环境,环境配置比较麻烦,
发布项目每个机器都要部署环境(集群Redis、JDK、ES、Hadoop、Mysql等),不能跨平台。
传统:开发出jar,运维部署
现在:开发打包部署一条龙
jar – apk – 发布应用商店 --客户下载apk安装
jar(环境) – 打包项目带上环境(镜像) – Docker仓库(商店) --下载镜像 --可直接运行
版本更新导致服务不可用,
vm: linux原生镜像(几个G),隔离需要开启多个VM ,启动几分钟
docker:自带隔离,镜像(最核心的环境4M),轻巧,秒级启动
go语言开发,开源
安装成功后cmd里执行
#运行
docker run -d -p 80:80 docker/getting-started
#拉取镜像
docker search centos
docker pull centos
docker run -it --name="hotCentos" centos
Docker命令
docker version #版本信息
docker info #系统信息,包括镜像和容器
docker --help
docker xxx --help
docker stats #查看资源使用情况
镜像命令
docker images #本地主机上的镜像(id,name等)
docker search xxx #仓库搜索镜像 类似于gitHub的搜索
docker pull #拉取镜像
docker pull mysql:5.7
docker rmi id/name #删除镜像
容器命令
有了镜像才可以创建容器,类似于Class new instance
docker pull centos #下载centos镜像练习
新建容器并启动
docker run[可选参数] image
#参数说明
--name="name" #容器名字
-d #后台运行
-it #交互方式运行,进入容器查看内容
-P #大写,指定容器的端口 -P 8080
-P ip:主机端口:容器端口
-P 主机端口:容器端口(常用)
-P 容器端口
容器端口
-p #小写,随机指定端口
docker run -it --name mynginx -P 3344:80 nginx # 3344对外端口 映射到内部端口80
#测试:启动进入容器
docker run -it centos /bin/bash #启动并进入centos容器
ctrl+p+q #退出容器
exit #停止退出容器
docker ps[参数]
ps #查看当前运行的容器
ps -a #a=all查看正在运行+历史运行的容器
ps -a -n=1 #查看最近运行的容器
ps -aq #查看所有容器
docker rm #删除容器
docker rm id #删除指定容器 ,运行中的不能删除
docker rm -f $(docker ps -aq) #递归删除所有容器 ,运行中的强制删除
docker ps -a -q|xargs #查看所有容器通过管道删除
docker start 容器id #启动容器
docker restart 容器id #
docker stop 容器id #
docker kill 容器id #
日志
docker log -tf --tail 10 容器id # -tf显示日志 --tail显示条数
进程
docker top 容器id #查看容器中的进程
容器元数据
docker inspect 容器id #查看容器的元数据
进入当前正在运行的容器
docker exec -it 容器id /bin/bash #进入容器 方式一 新的终端(常用)
docker attach 容器id #进入容器 方式二
拷贝数据
容器到主机
docker cp 容器id:path/file /path(目标路径)
demo
搭建nginx
docker images #1 查看镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 7 months ago 13.3kB
centos latest 5d0da3dc9764 7 months ago 231MB
docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 16670 [OK]
bitnami/nginx Bitnami nginx Docker Image 122 [OK]
docker pull nginx #2 拉取镜像
Using default tag: latest
latest: Pulling from library/nginx
1fe172e4850f: Pull complete
35c195f487df: Pull complete
213b9b16f495: Pull complete
a8172d9e19b9: Pull complete
f5eee2cb215