版本
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