docker基础命令以及docker应用部署

docker简介

1.docker的特点
2.docker组件
  • docker服务器和客户端
  • docker镜像与容器
    – 容器是基于镜像创建的实例,docker运用写时复制,在原有镜像基础上进行的操作
  • registy(注册中心)–所有仓库的集合,

docker命令

docker镜像命令
- docker images --镜像列表,通过镜像id确定唯一标识,名称+标签也可以确定
- docker serach 搜索镜像 重点关注offical
- docker pull 镜像名称-- 镜像拉取
- docker rmi 镜像id 删除镜像
- docker  image -q查看所有镜像id

容器命令

- 创建容器
- docker ps查询在运行的容器
- docker ps -a 所有的容器
- docker ps -l 查看最后一次运行的容器
- docker ps -f status=exited 查看停止的容器
- 创建容器
- docker run -di --name 容器名称 镜像名称:标签 --守护创建
- docker run -it --name 容器名称 镜像名称:标签 /bin/bash --交互式创建
- 停止与启动容器
 docker stop
 docker start
- 文件拷贝
- docker cp 需要拷贝的文件或目录 容器名称:容器目录
- docker cp 容器名称:容器目录 需要拷贝的文件或目录
- 目录挂载
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --privileged=true --name=mycentos3 centos:7 创建容器添加目录挂载
- 查看容器ip
docker inspect 容器名称(容器ID) 查看容器运行的各种数据
- 查看日志
docker logs -f 容器名称(或容器id)

数据卷管理

- 数据卷
- COMMAND:要运行的数据卷指令
- create:创建一个数据卷
- inspect:显示一个或多个指定数据卷的详细信息
- ls:查看所有的数据卷
- prune:删除所有未使用的数据卷
- rm:删除一个或多个指定的数据卷
- 数据卷挂载
  • 创建容器
docker run -id --name=my-nginx -p 8888:80 -v html:/usr/share/nginx/html nginx
  • 命令查看数据卷html在宿主机的物理地址
docker volume inspect html
挂载本地文件或文件夹
  • 运行nginx的同时挂载一个本地的nginx配置文件,方便以后修改nginx配置
  • 创建nginx.conf文件
touch nginx.conf
  • 编辑nginx.conf文件
vi nginx.conf
  • docker rm my-nginx -f 删除之前的nginx容器
docker run --name my-nginx -p 8888:80 -v html:/usr/share/nginx/html -v $PWD/nginx.conf:/etc/nginx/nginx.conf --privileged=true -id nginx
  • 创建新的容器

- 网络管理

- connect:把一个容器连接到指定的network
- create:创建一个network
- disconnect:将一个容器从指定的network断开
- inspect:显示某个network的详细信息
- ls:列出所有的network
- prune:删除未使用的network
- rm:删除指定的一个或多个network
创建network
docker network create -d bridge my-net
  • 查看network
docker network inspect my-net
连接network
  • 可以将一个已经运行的容器连接到某个network:
docker network connect my-net my-ngin
  • 也可以在创建容器时,连接一个network:
- docker run -it --rm --name mycentos --network=my-net centos:7 /bin/bash

迁移和备份

容器保存为镜像
docekr commit my-nginx mynginx_i
镜像备份
docker  save -o mynginx.tar mynginx_i
镜像恢复与迁移
docker load -i mynginx.tar

- 应用部署

MySQL部署
  • 拉取mysql镜像
docker pull mysql:5.7
  • 创建容器
docker run -id -p 3306:3306 --name=mysql -v /mydata/mysql/conf:/etc/mysql/conf.d -v /mydata/mysql/logs:/logs -v /mydata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
tomcat部署
  • 拉取镜像
  docker pull tomcat:7-jre7
  • 创建容器
  docker run -di --name=mytomcat -p 9000:8080 \
- v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
RabbitMQ部署
  • 拉取RabbitMQ镜像
docker pull rabbitmq:3-management
  • 运行MQ容器
  docker run \
 -e RABBITMQ_DEFAULT_USER=guest \
 -e RABBITMQ_DEFAULT_PASS=guest \
 --name mq \
 --hostname mq1 \
 -p 15672:15672 \
 -p 5672:5672 \
 -id \
 rabbitmq:3-management
redis部署
  • 拉取镜像
- docker pull redis
  • 创建容器
- docker run -di --name=myredis -p 6379:6379 redis
Nginx部署
  • 拉取镜像
- docker pull nginx
  • 先运行一次容器,目的是为了拷贝配置文件
- docker run -p 80:80 --name nginx \
- -v /mydata1/nginx/html:/usr/share/nginx/html \
- -v /mydata1/nginx/logs:/var/log/nginx  \
- -d nginx
  • 将容器内的配置文件拷贝到指定目录:
- docker cp nginx:/etc/nginx/mydata/nginx/
  • 修改文件名称
- cd /mydata/nginx/
- mv nginx conf
  • 终止并删除容器
- docker rm -f nginx
  • 使用一下命令执行nginx
- docker run -id -p 80:80 --name nginx \
- -v /mydata1/nginx/html:/usr/share/nginx/html \
- -v /mydata1/nginx/logs:/var/log/nginx  \
- -v /mydata1/nginx/nginx:/etc/nginx \
- -privileged=true \
- nginx

-在 /mydata/nginx/html 目录下创建 index.html 文件

Dockerfile

  • 常用命令
- FROM image_name:tag--定义了使用哪个基础镜像启动构建流程
- MAINTAINER user_name--声明镜像的创建者
- ENV key value--设置环境变量
- RUN command--是dockfile的核心部分
- ADD source_dir/filedest_dir/file--将宿主机的文件复制待容器内,如果是压缩文件,将会自动解压
- COPY source_dir/file dest_dir/file--和ADD相似,但是不能解压
- WORKDIR path_dir--设置工作目录

-Dockerfile实战创建jdk8镜像
  • 创建目录
- mkdir -p /usr/local/dockerjdk8
  • 下载jdk-8u171-linux-x64.tar.gz并上传到服务器(虚拟机)中的/usr/local/dockerjdk8目录
  • 创建文件Dockerfile vi Dockerfile
  • #依赖镜像名称和ID
- FROM centos:7
- #指定镜像创建者信息
- MAINTAINER ITCAST
- #切换工作目录
- WORKDIR  /usr/local/myjava
- RUN mkdir -p /usr/local/myjava
- #ADD 是相对路径jar,把java添加到容器中
- ADD jdk-8u171-linux-x64.tar.gz /usr/local/myjava/

- #配置java环境变量
- ENV JAVA_HOME /usr/local/myjava/jdk1.8.0_171
- ENV JRE_HOME $JAVA_HOME/jre
- ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME- /lib:$CLASSPATH
- ENV PATH $JAVA_HOME/bin:$PATH
  • 执行命令构建对象
- ==docker build -t='jdk8' .  # 默认是 latest==
- docker build -t='jdk8:1.8' .  # 指定tag版本
  • 查看镜像是否完成
- docker images
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值