Docker是什么? Docker一个运行环境部署好后,可一直重复使用的工具。
Docker的三个基本概念:镜像,容器,仓库
以下不包括Docker的下载安装,但你想几分钟就使用和熟练了解Docker,那么请继续往下看~简单一句概括: 【Java|通俗易懂的Docker (一篇文章就让你玩转)】镜像 --> 容器;
镜像集中于仓库;
仓库中有镜像,镜像被容器使用。
(镜像中可以有多个组件,通过build自定义创建镜像,创建Dockerfile文件写入组件信息,如redis,php,mysql,python...)。
Docker Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
Docker Compose是用于定义和运行多容器 Docker 应用程序的工具。
Docker Machine是一种可以在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。
自定义Docker镜像,满足自己的开发环境需求方法:
- 先从Docker的公共库下载有部分软件环境的镜像,在其基础上,进入镜像,用命令下载需要的软件环境,利用commit生成新的镜像,提交容器副本;
- 编写Dockerfile文件,使用build生成镜像,后面如果需要其他软件环境,可用1的方法进入镜像,生成新的镜像。
docker search redis'搜索redis版本'
docker pull redis:latest'加载redis最新版本的镜像'
docker images'查看本地镜像是否安装成功'
docker run -itd --name redis_test -p 6379:1111 redis
'使用镜像redis,运行容器名字为redis_test,容器端口1111(后)映射到本机端口(前)6379'
docker ps'查看容器运行信息'
docker exec -it redis_test /bin/bash'进入容器的终端,可查看容器中的redis版本'
docker run --name phpAndredis -p 80:80 -d \
-v ~/nginx/www:/www \'将主机的目录/nginx/www挂载到容器的/www'
-v ~/conf/conf.d:/etc/conf \
--link redis_test:redis \'把redis_test的网络并入下面的php'
php
常见镜像操作:
docker images'显示本地的镜像'
docker pull ubuntu:11'加载镜像'
docker search httpd'查找镜像'
docker rmi httpd'删除镜像'
docker run -it ubuntu:11 /bin/bash'创建容器进入终端'
apt-get update'更新镜像'
docker commit -m="描述信息" -a="作者" 容器id 创建目标镜像名字'提交容器副本'
docker build -t diy_centos .'自定义创建镜像,通过创建Dockerfile文件,写指令
-t创建的目标镜像名字,[.] Dockerfile文件所在目录'
docker tag 容器id diy_centos:whiteV1'设置镜像标签'
常见容器操作:
docker ps -a'查看所有容器'
docker start/stop/restart 容器id(例如:913791ibi31)'启动/停止/重启 对应id的容器'
docker attach 容器id'进入对应id的容器,退出时停止容器'
docker exec -it 容器id /bin/bash'进入对应id的容器,退出时不会停止容器'
docker export 容器id > white.tar'导出本地容器到white.tar'
cat docker/white.tar | docker import -test/ubuntu:v1.0'导入white为镜像,再导入到ubuntu镜像中'
docker import http://white.com/white.tar test/ubuntu'指定url导入'
docker rm -f 容器id'删除容器'
docker port 容器id/name'查看容器端口映射情况'
docker logs -f 容器id/name'查看容器的输出'
docker network create -d bridge network_test'创建Docker网络'
docker run -itd --name testANDnet --network network_test ubuntu /bin.bash'运行容器连接网络,设置两个容器则会建立互联关系'
部分命令说明
-i交互式操作
-t终端
-d容器后台运行,不进入容器
-P容器端口随机映射主机端口,主机端口随机
-p容器端口指定映射主机端口,主机端口自定
attach进入容器,退出容器时容器停止
exec(推荐)进入容器,退出容器时容器不会停止
推荐阅读
- kubernetes|kubernetes
- linux|Kubernetes常用命令
- 面试|Alibaba内部Java技术成长笔记,业界良心,程序员最爱
- 面试|网上疯传的《阿里Java架构师成长之路》!,网友瞬间沸腾了
- 后端|在idea中创建java的Gradle项目 讲的很详细的
- java|SpringBoot集成Dubbo详细配置
- java|WINDOWS环境下RABBITMQ的启动和停止命令
- java|在cmd中怎么进入mysql()
- springboot|从零开始搭建springboot项目骨架