docker学习-qiang

docker优势
轻量级、资源损耗少、启动快、性能高、只能运行linux系统

容器技术发展历程
1.chroot技术
新建一个子系统(拥有自己完整的系统文件)
ldd /bin/ls(查看ls命令依赖的库文件)
2.linux容器(lxc)-linux container
namespaces命名空间、隔离环境、cgroup进程资源限制
3.docker容器
初期使用lxc二次开发,后期使用libcontainer

docker加速器 #使用阿里加速更靠谱

vim /etc/docker/daemon.json
{"registry-mirrors":["https://registry.docker-cn.com"]}
docker info 检查加速

镜像管理

docker search -搜索镜像
docker pull -拉镜像,默认最新版latest
docker image ls -镜像列表
docker image save -镜像导出
docker image load -镜像导入
docker image rm -镜像删除

容器管理

run-创建并启动
start-启动
-d 后台运行
-p 指定端口映射
-P 系统自动指定端口映射
-it 分配交互式终端
--name 指定容器名称
ctrl+d 退出容器
-v 源地址(宿主机):目标地址(容器)
-e 环境变量
docker container ls    查看启动容器
docker container ls -a 查看所有容器
docker container start/restart/stop/kill/rm/rename 启动/停止/杀死/删除/重命名 容器

进入正在运行的容器

docker container attach 进入容器同一个终端,画面同步
docker container exec -it name /bin/bash 使用exec分配tty进入容器
/bin/bash 覆盖容器初始命令
ctrl+p,ctrl+q悄悄退出

容器网络
默认容器网络-nat模式,172网段

-p 80:80
-p 514:514/udp 指定udp协议,默认tcp协议

容器数据持久化

docker container cp 宿主机目录 容器名:目录 -复制宿主机目录
docker cp /data/docker/test01/ docker-centos01:/ttt
docker run -d -v 源地址(宿主机):目标地址(容器) 容器名 -挂载主机目录,之后直接修改宿主机目录内容便可
数据卷管理
docker run -d -v 卷名:目标地址(容器) 容器名 -数据卷(第一次卷空,将容器数据拷贝至卷;若卷有数据则卷数据挂载到容器)
docker volume inspect 卷名
--volume-from 跟某一个已经存在的容器挂载相同的卷
docker run -itd -v tes:/opt/ centos /bin/bash
docker run -itd -v /data/docker/test/:/opt/ centos /bin/bash

手动制作镜像

docker run -it -p 81:80 centos /bin/bash
yum install nginx -y
nginx
ctrl+d
docker container commit nifty_lamarr centos8-nginx01
docker image ls
docker run -itd -p 81:80 centos8-nginx01 /bin/bash

自动制作镜像dockerfile

基础镜像信息            FROM
制作镜像操作指令        RUN
容器启动时执行初始命令  CMD [" "]
docker image build -t 镜像名称 --network=host dockerfile路径

root账户登录

docker exec --user root -it mongo /bin/bash

自动重启

--restart unless-stopped 

时间一致

-v /etc/localtime:/etc/localtime:ro

日志

docker logs ID -f
原文地址:https://www.cnblogs.com/kylingx/p/11968462.html