docker(持续更新中)
Posted 小蜗牛爱远行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker(持续更新中)相关的知识,希望对你有一定的参考价值。
-
docker启动:
docker daemon -g /home/dockeruser/mydocker
:在新的目录中的启动docker -
docker启动容器:
-
docker run --detach(-d) --name web nginx:latest
:创建守护进程 -
docker --interactive --tty(可以组合:-it) --link web:web --name web_test busybox:latest /bin/sh
:创建虚拟终端,并绑定标准输入或输出到运行中的容器
-
-
docker导出:
- 导出容器:
docker export 容器名称(推荐)-o aaaaaa.tar
- 导出镜像:推荐:
docker save 容器名称 -o aaaaaa.tar
;不推荐:docker save 镜像ID(导入时需要重新命名) -o aaaaa.tar
- 导出容器:
-
docker导入:
- 导入镜像(推荐):
docker load < fileName.tar
或docker load -i fileName.tar
- 导入容器(生成的也是镜像):
docker import fileName.tar REPOSITORY:TAG
docker import
:丢弃了所有的历史记录和元数据信息,仅保存容器当时的快照状态。在导入的时候可以重新制定标签等元数据信息;docker load
:将保存完整记录,体积较大
- 导入镜像(推荐):
-
docker 命名:
- 镜像命名:
docker tag 镜像ID REPOSITORY:TAG
- 容器重命名:
docker rename 原名称 新名称
- 镜像命名:
-
docker容器中运行额外进程:
docker exec -d --name web busybox:latest /bin/sh -c "sleep 3000"
-
docker查看命令:
-
查看日志
docker logs 容器名称
-
查看容器配置信息:
docker inspect -f "{{json .Config.Env}}" centos8
docker inspect -f "{{json .Mounts}}" centos8
-
-
创建只读容器:
--read-only
标志创建容器时,会将挂载的容器文件系统设置为只读,防止容器被修改
-
容器重启策略:
--restart
标志,系统故障时自动重试,时间间隔为上次重启时间翻倍
-
docker项目设计:
-
镜像适合打包和分发相对静态的文件,如程序;
-
存储卷则持有动态或专门数据
- 绑定挂载卷:指向主机文件系统上用户指定的位置
- 文件映射:
docker run -d --name myweb -v /home:/usr/local/apache2/htdocs -p 80:80 httpd:latest
冒号前本机路径,冒号后docker的httpd运行的容器文件路径,可在页面展示 - 文件映射只读模式:
docker run -d --name myweb -v /home:/usr/local/apache2/htdocs/:ro -p 80:80 httpd:latest
-
创建一个与宿主机共享卷容器
docker run -itd -v /home:/home/gy -v ~/web-logs-example:/home/web-logs-example --name myos1 0d120b6ccaa8 /bin/bash
-
复制任何本卷所有引用的源容器到新的容器中
docker run --name myos2 --volumes-from myos --volumes-from myos1 0d120b6ccaa8 ls -l /home/
-
-
docker容器删除:
-
删除所有未运行的容器和卷,
-v
防止产生孤立卷docker rm -v $(docker ps -aq)
-
删除虚悬镜像(这个镜像既没有仓库名,也没有 标签,均为
<none>
)docker image prune
或者docker rmi $(docker images -q -f dangling=true)
-
-
docker网络设置:
docker -d -icc=false
:跨容器通信被禁止,除非被显式允许的流量
-
docker容器八个命名空间(可能会有更新):
- MNT:文件系统 访问和结构
- NET:网络访问和结构
- UTS:主机和域名
- USR:用户名和标识符
- IPC:通过共享内存进行通讯
- PID:进程标识符和进程能力
Cgroups
:资源保护chroot()
:控制文件系统跟目录的位置
-
docker添加私有仓库:
-
vim /etc/docker/daemon.json #添加信息,远程仓库和私有仓库 { "registry-mirrors": [ "https://pak31uuv.mirror.aliyuncs.com", "https://registry.docker-cn.com" ], #私有仓库地址 "insecure-registries": [ "私有仓库IP地址" ] } #重启docker systemctl restart docker
-
-
问题:
- 已经创建的容器可以修改那些参数?
- 多个容器之间怎么相互通讯关联?
以上是关于docker(持续更新中)的主要内容,如果未能解决你的问题,请参考以下文章