1.总结namespace的类型及功能
- MNT Namespace(mount) 功能:用户使用mount命令来挂在文件系统,可隔离出一个具有独立挂载点信息的运行环境,每个namespace之间的挂载点列表是独立的,各自挂载互不影响;
- IPC Namespace 功能: 提供进程间通信的隔离能力,调用CLONE_NEWPIC ;
- UTS Namespace 功能:提供主机名隔离能力,调用CLONE_NEWUTS ;
- PID Namespace 功能:提供进程隔离的能力,调用CLONE_NEWPID;
- Net Namespace 功能:提供隔离网络设备、IP地址端口等,调用CLONE_NEWNET;
- User Namespace 功能:隔离用户和用户组ID;
- Time Namespace 功能:允许不同进程看到不同的系统时间;
- Syslog Namespace 功能:提供syslog隔离能力;
- Control group Namespace 功能:提供进程的所属的控制组的身份隔离
2.总结docker的命令使用(镜像管理、容器管理)
容器管理:获取容器 docker pull ubuntu
启动容器 docker run -it ubuntu /bash
查看所有容器 docker ps -a
查看运行容器 docker ps
启动一个已经停止的容器 docker start ubuntu
后台运行容器 docker run -itd --name ubuntu-test ubuntu bash
停止容器 docker stop ubuntu
exec命令 docker exec -it 243 bash
强制删除容器 docker rm -f 243
镜像管理:镜像列表 docker images
获取镜像 docker pull ubuntu:20.4.*
查找镜像 docker search ubuntu
删除镜像 docker rmi ubuntu
从dockerfile创建镜像 docker build -t ubuntu:tag .
FROM
MAINTAINER=" "
RUN
CMD
3.熟练使用各种方式安装docker
ubuntu安装docker:
卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc
更新apt包 apt-get update
安装依赖 sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
添加密钥 curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
安装最新版 sudo apt-get install docker-ce docker-ce-cli containerd.io
开机启动 systemctl enable docker
启动 systemctl start docker
Centos安装docker:
安装依赖:yum install -y yum-utils device-mapper-persistent-data lvm2
添加源:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新源: yum update
安装ce 和 容器 :yum install docker-ce docker-ce-cli containerd.io
查看docker-ce支持的版本:yum list docker-ce --showduplicates|sort -r
启动:systemctl start docker && systemctl enable docker
4.总结docker的存储引擎
默认 Storage Driver:overlay 2
镜像下载本地后,会存储到/var/lib/docker/overlay2 文件夹下,名称随机生成。
5.总结docker的-v和-p的使用
1)docker run -p 8080:80 nginx是端口映射 ,宿主机端口8080映射到容器端口80
2) docker run -p 127.0.0.1:8080:80 nginx IP地址端口映射
3)docker run -p 8080:80/tcp 443:443/udp nginx 端口映射按tcp/ucp协议
4)docker run -P nginx 端口随机映射到容器80端口
5)docker run -p 8080:80 -p 443:443 --name nginx -v /usr/local/nginx/conf:/etc/nginx -v /usr/local/nginx/log:/var/log/nginx -v /usr/local/nginx/html:/usr/share/nginx/html -d nginx 挂载目录
6.使用docker创建MySQL容器并把数据保存到宿主机的/data/mysql
docker run -p 3307:3306 --privileged=true -v /usr/local/mysql/log:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql