N79第一周作业

发布时间 2023-07-07 10:42:52作者: 森田大叔

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