乐趣区

关于docker:Docker-基础

版本 1.0
团队 北芯众合技术小组
制作 <wu_chang_hao@qq.com>
工夫 2021/01/21

知识点

  • docker 基本概念

    • docker 镜像增删改查
    • docker 容器
    • docker 容器增删改查
    • docker 其余命令应用
    • docker 导入 / 导出
    • docker 镜像市场
    • docker 阿里云镜像减速
  • 装置 docker
  • docker 试验

    • 测试
    • 自定义 docker 镜像

      • 案例一
      • 案例二

docker 基本概念

  • 镜像: image
  • 容器: container
  • 仓库: repository

docker 镜像增删改查

docker search             # 镜像名:去 docker hub 搜寻无关镜像文件
docker pull             # 镜像名:下载 docker 镜像
docker images            # 查看本地有哪些 docker 镜像,同 docker image ls
docker rmi                 # 镜像 id 或者镜像名:删除本地 docker 镜像
docker rmi -f             # 镜像 id:强制删除镜像文件

docker 容器

  • docker 容器中必须有过程在后盾运行, 否则容器挂掉
  • docker 镜像每次运行 都会生成新的容器 id 记录

docker 容器的增删改查

docker run 镜像名 / 镜像 id:运行处容器过程实例

docker ps:查看正在运行的容器过程

docker ps -a:显示所有运行过的容器过程(正在运行的, 以及挂掉的容器过程),同 docker container ls -a,旧的命令

docker run -it 镜像 id/ 镜像名 /bin/bash:运行一个交互的容器

参数:-i:interactive,交互式的命令操作;-t:terminate,开启一个终端界面;/bin/bash:指定 linux 的解释器

docker rm 容器 id:删除容器 id 记录, 只能删除挂掉的容器

docker rm `docker ps -aq`:批量删除进行运行的容器记录

docker exec -it 运行着的容器 id /bin/bash:进入一个正在运行着的容器

docker logs 容器 id:查看容器的日志

docker logs -f 容器 id:查看容器内的日志

# 启动容器 (后盾模式)
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

# - P 参数:将容器外部应用的网络端口随机映射到主机上
docker run -P mongo
docker ps    # 查看随机映射的端口

# - p 参数:设置固定映射端口
docker -run -d -p 27017:27017 xxx_id /bin/bash

# --net host 参数:能够应用通过 web 界面拜访到容器了
 docker run --net host xxx_id /bin/bash

docker 其余命令应用

# docker 查看配置信息
docker info

# 返回 docker 对象信息, 底层信息, 返回一个 JSON 文件记录着 Docker 容器的配置和状态信息
docker inspect xxx_id

docker 导入 / 导出

# 导出某个镜像
docker export 1e560fca3906 > center.tar

# 导入镜像
docker import cneter.tar

# 导出本地镜像
docker save -o docker-mongo.tar 213c2b6cee9f

# 导入本地镜像
docker load -i docker-mongo.tar

docker 镜像市场

# DaoCloud 厂商
https://hub.daocloud.io/

docker 阿里云镜像减速

# 阿里云镜像减速地址
https://dev.aliyun.com/

装置 docker


wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y docker

# 配置镜像下载加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

cat /etc/docker/daemon.json
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}

docker 试验

测试


docker run -d centos /bin/sh -c "while true;do echo'hello, beixin team.'; sleep 1;done"
    -d:daemonize,后盾运行
    centos:指定哪个镜像
    /bin/sh:指定 linux 的解释器
    -c:指定一段 shell 代码
    "while true;do echo' 熊大真棒 '; sleep 1;done",每秒打印一个

自定义 docker 镜像

案例一

# 获取一个 centos 镜像,运行出容器实例
docker run -it  centos /bin/bash

# 进入容器空间, 装置 vim
yum install vim -y

# 退出容器,提交这个容器为一个新的镜像
exit
docker ps -a  # 查看方才装置了 vim 的容器 id,这里
4595c3de8418 9f3 # 这里我的查到时 459

# 提交镜像语法:docker commit 容器 id 新的镜像名字
docker commit 459 centos-vim

# 查看提交的镜像文件
docker images

# 导出镜像文件到指定的文件,留神为压缩文件
docker save centos-vim > /opt/centos-vim.tar.gz

# 在本地测试导入这个镜像,能够先删除咱们生成的镜像
docker rmi centos-vim

# 导入镜像
docker load < /opt/centos-vim.tar.gz

# 导入的镜像,批改名字
# docker tag 旧的镜像名 以 docker 仓库 id 结尾 / 新的镜像名
docker tag 84d  mydocker/centos-vim

# 执行 docker 镜像,运行出容器,查看是否携带了 vim
docker run -it mydocker/centos-vim
vim  # 胜利的话,vim 能够执行

案例二

docker 运行一个 flask 框架的脚本

# 下载 training/webapp 的镜像,用来运行 python 的 flask 我的项目。# docker run 的特点,如果镜像不存在,则主动去 docker pull 下载

# 通过 training/webapp 实例一个容器对象
docker run -d -P training/webapp python app.py

# 查看运行容器的端口
docker port 容器 id

# 容器的启停命令
docker start 容器 id
docker stop 容器 id

# 依据端口映射,查看 flask 框架
拜访:192.168.16.122:32768
退出移动版