注册网站建设公司主营项目类别,游戏网站首页设计,提升网页优化排名,php网站开发实例教程 pdf1.Docker的概述 用Go语言实现的开源应用项目#xff08;container#xff09;#xff1b;克服操作系统的笨重#xff1b;快速部署#xff1b;只隔离应用程序的运行时环境但容器之间可以共享同一个操作系统#xff1b;Docker通过隔离机制#xff0c;每个容器间是互相隔离…1.Docker的概述 用Go语言实现的开源应用项目container克服操作系统的笨重快速部署只隔离应用程序的运行时环境但容器之间可以共享同一个操作系统Docker通过隔离机制每个容器间是互相隔离每个容器内都有一个属于自己的文件系统互不影响
2.重要概念 dockerfileimagecontainer
实际上你可以简单的把image理解为可执行程序container就是运行起来的进程。
那么写程序需要源代码那么“写”image就需要dockerfiledockerfile就是image的源代码docker就是编译器。
因此我们只需要在dockerfile中指定需要哪些程序、依赖什么样的配置之后把dockerfile交给“编译器”docker进行“编译”也就是docker build命令生成的可执行程序就是image之后就可以运行这个image了这就是docker run命令image运行起来后就是docker container。 基本组成镜像 image、容器 container、仓库 repository共有/私有存放镜像的地方
3.docker命令 docker version # 显示docker的版本信息
docker info # 显示docker的系统信息镜像命令docker images # 查看所有本地的主机上的镜像docker search 镜像名 # 搜索镜像docker pull 镜像名[:tag] # 下载镜像如果不写tag默认就是latestdocker rmi -f 镜像ID # 删除指定的镜像docker rmi -f $(docker images -aq) # 删除全部的镜像容器命令(有了镜像才可以创建容器,直接run就是先创建再启动)docker run [可选参数] 镜像ID参数说明-a stdin: 指定标准输入输出内容类型可选 STDIN/STDOUT/STDERR 三项-d: 后台运行容器并返回容器ID-i: 以交互模式运行容器通常与 -t 同时使用-P: 随机端口映射容器内部端口随机映射到主机的端口-p: 指定端口映射格式为主机(宿主)端口:容器端口-t: 为容器重新分配一个伪输入终端通常与 -i 同时使用--namenginx-lb: 为容器指定一个名称-m :设置容器使用内存最大值--netbridge: 指定容器的网络连接类型支持 bridge/host/none/container: 四种类型--link[]: 添加链接到另一个容器--expose[]: 开放一个端口或一组端口--volume , -v: 绑定一个卷例如docker run -it centos /bin/bash 从容器中退回主机exit # 直接停止容器并退出Ctrl P Q # 不停止容器但退出docker ps # 列出当前正在运行的容器可选项-a # 列出当前正在运行的容器带出历史运行的容器-n数字 # 显示最近创建的容器-q # 只显示容器的编号删除容器docker rm 容器ID # 删除指定的容器不能删除正在运行的容器docker rm -f 容器ID # 强制删除指定的容器docker rm -f $(docker ps -aq) # 删除全部的容器docker ps -aq | xargs docker rm # 删除全部的容器启动和停止容器的操作docker start 容器ID # 启动容器docker start -i 容器ID # 启动一个已停止的容器并进入交互界面docker restart 容器ID # 重启容器docker stop 容器ID # 停止当前正在运行的容器docker kill 容器ID # 强制停止当前容器后台启动容器docker run -d 镜像名查看日志docker logs -tf --tail 数字 容器ID可选项-tf # 显示日志--tail 数字 # 显示的日志的条数
docker run -d centos /bin/sh -c while true;do echo hello world;sleep 1;done
docker logs -tf --tail 10 容器ID # 显示10条日志
docker logs -tf --tail 10 容器ID # 显示所有日志
Ctrl C # 停止输出日志
查看容器中的进程信息docker top 容器ID
查看镜像元数据docker inspect 容器ID
进入当前正在运行的容器docker exec -it 容器ID /bin/bash # 进入容器后开启一个新的终端可以在里面操作常用 参数说明-d :分离模式: 在后台运行-i :即使没有附加也保持STDIN 打开-t :分配一个伪终端文件是在容器内创建的命令是在主机上执行的。在容器内时可以exit退出因为容器内的文件存在与否和容器是否正在运行没关系。docker cp 容器ID:容器内路径 目的主机路径
从主机上拷贝文件到容器内docker cp 源主机路径 容器ID:容器内路径
拷贝是一个手动过程未来我们使用“-v”卷的技术可以实现自动同步修改容器内存
docker stats 容器ID
Ctrl C退出
docker update --memory 2G --memory-swap -1 容器ID
mac系统无法设置超过2GiB的内存Linux系统可以设置为系统能提供的最大内存
4.centos8安装docker 把image理解为可执行程序container就是运行起来的进程。dockerfile就是image的源代码docker就是编译器--1.更新国内源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
yum clean all yum makecache
--2.卸载旧版本的docker
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
--3.增加源
sudo yum install -y yum-utils
sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
--4.安装dockerdocker的引擎、操作docker的客户端、docker容器
--先卸载低版本的runc要不安装的时候会报错版本低冲突
yum -y remove runc
sudo yum install docker-ce docker-ce-cli containerd.io
--5.启动docker服务查看是否成功
sudo systemctl start docker
sudo systemctl enable docker
----客户查看docker的版本也确保一下安装是否成功
docker -v
----查看有没有下载的镜像images
----因为是新安装的docker,所以是空列表
docker images
--6.配置docker应用镜像加速
--/etc/docker这个目录加入没有的话就自己创建一个
sudo tee /etc/docker/daemon.json -EOF
{registry-mirrors: [https://kru7klna.mirror.aliyuncs.com]
}
EOF重新加载
sudo systemctl daemon-reload
sudo systemctl restart docker