docker 学习和使用

1.安装不在介绍

2.基本概念

   类似虚拟机,比虚拟机耗费更小的资源。

   镜像:就是模板,类似JAVA 类。

   容器:对象,类似 JAVA 对象。

3.相关命令总结 测试

#启动docker
systemctl start docker   
#重启docker
systemctl restart docker
#查看命令 列出所有的命令
docker --help
#查询具体一个命令的使用 如
docker rm --help 

#其他具体命令介绍
#1.查看本地已安装镜像
 docker images
#2.查看本地已运行的容器
 docker ps
#3运行容器
 docker run <相关参数> <镜像 ID> <初始命令>
 其中,相关参数包括:
  -i:表示以“交互模式”运行容器
  -t:表示容器启动后会进入其命令行
  -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录> 
  -d: 让容器在后台运行(和 -i相反)格式 :宿主端口:容器端口。
  -P: 将容器内部使用的网络端口映射到我们使用的主机上。
 例:
 docker run -i -t -p 6000:6000 -v /root/project/:/root/porject 25c5298b1a36 
#4查看端口映射情况
 docker port 25c5298b1a36
#5进入一个容器
 docker exec -it 8465920bcaa9  bin/bash
#6停止容器
 docker stop   25c5298b1a36
  

 4. 关于docker镜像

#查找镜像
 docker search  名称
#安装镜像,拉取仓库中已有的镜像 mysql http 等都有现成的
 docker pull    名称:版本号
#自制镜像
 概念:
 1.通过编写Dockerfile配置文件 实现自定义镜像构建。相关的语法可参考官网。
 基本命令介绍:
 From :指定新镜像的基础镜像。
 MAINTAINER :指明该镜像的作者和其电子邮件
 RUN :在新镜像内部执行的命令,比如安装一些软件、配置一些基础环境,可使用\来换行。
 也可以使用exec格式RUN ["executable", "param1", "param2"]的命令
 COPY :将主机的文件复制到镜像内,如果目的位置不存在,Docker会自动创建所有需要的目录结构
 ADD :将主机的文件复制到镜像中,跟COPY一样,限制条件和使用方式都一样
 EXPOSE :暴露镜像的端口供主机做映射,启动镜像时,使用-P参数来讲镜像端口与宿主机的随机端口做映射,
 可指定多个。
 WORKDIR :指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
 ONBUILD :当一个包含ONBUILD命令的镜像被用作其他镜像的基础镜像时(比如用户的镜像需要从某为准备好的位置添加源代码,或者用户需要执行特定于构建镜像的环境的构建脚本),该命令就会执行
 USER :指定该镜像以什么样的用户去执行
 VOLUME :用来向基于镜像创建的容器添加卷。比如你可以将mongodb镜像中存储数据的data文件指定为主机
 的 某个文件。(容器内部建议不要存储任何数据) 
 CMD :容器启动时需要执行的命令 运行docker run 会被覆盖
 ENTRYPOINT :CMD一样,不会被docker run覆盖
 
 

  示例:

  创建Dockerfile文件

#指定父镜像 你本地安装了此镜像
FROM ubuntu
#指定作者和QQ
MAINTAINER tbpworld xxxx@qq.com
#工作目录
WORKDIR /usr/local/docker
#添加文件
ADD temp.zip ./add/
COPY temp.zip ./copy/
#开放端口
EXPOSE 22
#运行 创建用户 
RUN  useradd  tbpworld
#指定用户 
USER tbpworld

ENTRYPOINT ["/bin/bash"]

运行:

  

5.关于docker网络

 

  Bridge模式

   默认方式,有自己的IP 端口。使用-p 宿主端口:容器端口  只是做了端口的转发。

HOST 模式
--net=host,无自己得IP 端口,使用宿主机的ip和端口。

 container模式

--net=container:容器名称,使用指定已存在的容器的ip和端口

 none模式

--net=none Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。

6.相关指令测试

#查看目前存在的网络模式 默认三种 
docker network ls

#创建新的网络模式,
docker network create -d bridge --ip-range=192.168.1.0/24 --gateway=192.168.1.1 --subnet=192.168.1.0/24 mynet
#创建容器指定IP 使用此种方式可实现容器间 通过ip通信。
docker run -it --network=mynet --ip=192.168.1.3
#指定DNS名称 可通过DNS通信,后期指定IP 
docker run -it --network=mynet --name box1  


#容器和外部通信
 1.转发方式
 -p 映射  不太方便
 2.其他 
 需要第三方的东西安装配置,以后用到再说吧,感觉有点复杂。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值