Docker笔记

本文详细介绍了Docker的概念、作用、组成、与VM的区别,以及安装部署、工作流程和原理。通过实例演示了Docker镜像常用指令、容器命名、实操部署Nginx、进阶知识如镜像加载原理、容器数据卷、DockerFile制作和容器间数据同步。此外,还探讨了Docker网络设置,包括容器互联、自定义网络和网络连通,并展示了Redis集群的部署方法。
摘要由CSDN通过智能技术生成

Docker笔记

Docker概念

Docker 的思想来自于集装箱,集装箱在一艘大船上,可以把货物规整的摆放起来,并且各种各样的货物被集装箱标准化了。集装箱和集装箱之间不会互相影响,比如就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装完好,就可以用一艘大船一起都运走。

Docker的作用

软件自带环境安装,实现跨平台,跨操作系统地正常运行应用程序。避免版本不兼容,环境配置麻烦等问题。便于开发和运维人员更好地协同合作。比如一个应用程序需要 JDK、Tomcat、MySQL 环境,使用 Docker 就可以把应用程序和环境一起打包成一个镜像上传,其他人只需要下载这个镜像后启动镜像即可运行此应用程序。
Docker 提供了软件编码开发 / 测试结束后,程序和字节码文件执行,开发和运维人员的部署配合的一个标准化的解决方案。

Docker 的组成

镜像( image ):
Docker 镜像就像是一个模板,可以通过这个模板来创建容器服务,通过一个镜像可以创建多个容器。
容器( container ):
Docker 容器就是 Docker 镜像启动或独立运行一个或者一组应用。可以理解为一个简易的 Linux 系统。每个容器间互相隔离,且每个容器内都有一个属于自己的文件系统,互不影响。
仓库( repostitory):
Docker 仓库就是存放镜像的地方,分为公有仓库和私有仓库。一般 Docker 仓库默认是国外的 Docker Hub,阿里云也有 Docker 仓库,容器镜像服务和镜像加速器。

Docker与VM的区别

传统虚拟机需要先虚拟出一套硬件,再运行一个完整的操作系统,再在这个系统上安装和运行软件。资源占用多、冗余步骤多、启动慢。
Docker 容器依赖主机的内核,容器内的应用直接运行在主机的内核,除去了虚拟硬件,引导加载的环节,非常轻便。

Docker安装部署

# 卸载旧版本
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 安装需要的安装包
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
# 安装docker
yum install docker-ce docker-ce-cli containerd.io
# 配置阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://vmdgahdo.mirror.aliyuncs.com"]
}
EOF
#配置docker
cat <<EOF | sudo tee /etc/docker/daemon.json
	{
	"exec-opts": ["native.cgroupdriver=systemd"],
	"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],
	"log-driver": "json-file",
	"default-address-pools":[{"base": "192.168.0.0/16", "size": 24}],
	"log-opts": {
		"max-size": "100m"
	},
	"storage-driver": "overlay2"
	}
	EOF

sudo systemctl daemon-reload
sudo systemctl restart docker
# 测试docker是否安装成功
docker version
# 启动docker
systemctl start docker
# hello-world
docker run hello-world
docker run -it centos (交互式启动容器)
dockr run -d nginx (后台启动容器)
# 查看下载的镜像
docker images

# 重启docker
systemctl restart docker
# 查看docker状态
systemctl status docker
# 设置docker为开机自启动
systemctl enable docker

# 停止docker
systemctl stop docker
# 卸载docker
yum remove docker-ce docker-ce-cli containerd.io
# 删除docker资源
rm -rf /var/lib/docker

Docker工作流程

运行命令后 Docker 会先在本地寻找该镜像,如果本地有此镜像就运行此镜像,如果本地没有该镜像就会去 DockerHub 上寻找。如果 DockerHub 上有该镜像则下载该镜像到本地后运行此镜像,如果 DockerHub 上没有该镜像就返回找不到该镜像的错误。

Docker工作原理

Docker 是一个 Client - Server 结构的系统。Docker 的守护进程运行在本机上,客户端可以通过 Socket 访问。Docker Server 接收到 Docker Client 的指令执行命令。

Docker镜像常用指令

# 查看docker概要信息
docker info

# 查看docker帮助文档
docker --help

#列出镜像
docker images 

# 列出指定镜像
docker images hello-world
# 列出所有镜像
docker images
docker images -a
# 列出指定镜像id
docker images hello-world -q
# 列出所有镜像id
docker images -q
docker images -aq


# 搜索指定镜像
docker search mysql
# 搜索收藏大于3000的指定镜像
docker search mysql --filter=STARS=3000


# 下载指定镜像
docker pull mysql
# 下载指定版本的镜像
docker pull mysql:5.7

# 删除指定镜像
docker rmi -f 镜像id
# 删除多个镜像
docker rmi -f 镜像id 镜像id 镜像id
# 删除全部镜像
docker rmi -f $(docker images -aq)

Docker容器命名

# 下载centos镜像,有了镜像才能创建容器
docker pull centos
# 以交互方式启动容器
docker run -it centos /bin/bash
# 查看容器内容
ls
# 退出容器
exit
ctl+shift+p+q :退出容器且不关闭容器
# 后台启动容器
docker run -d centos

# 列出当前运行的容器
docker ps
# 列出当前运行和历史运行的容器
docker ps -a


# 启动指定容器
docker start 容器id
# 重启指定容器
docker restart 容器id
# 停止当前运行的指定容器
docker stop 容器id
# 强制停止指定容器
docker kill 容器id


# 删除指定的容器,不能删除当前运行的容器
docker rm 容器id
# 强制删除当前运行或历史运行的容器
docker rm -f 容器id
# 删除所有的容器
docker rm -f $(docker ps -aq)
docker ps -a -q|xargs docker rm

# 查看指定容器的日志,-tf显示日志,--tail显示条数
docker logs -tf --tail 10 容器id
# shell脚本
docker run -d centos /bin/sh -c "while true;do echo docker;sleep 1;done"


# 查看指定容器的进程
docker top 容器id

# 查看指定容器的元数据
docker inspect 容器id

# 进入正在运行的容器方式一:开启新终端
docker exec -it 容器id /bin/bash
# 进入正在运行的容器方式二:进入该终端
docker attach 容器id

# 手动拷贝容器中的文件
docker cp 容器ID:容器路径 主机路径

通过查看容器发现,创建的两个容器并未运行。以交互方式启动的容器未运行是因为执行 exit 命令退出容器时顺带把容器停止运行了。后台启动的容器未运行是因为容器后台运行必须有一个前台进程,docker 如果未发现应用就会自动停止后台运行。使用快捷键 Ctrl + Shift+P + Q 可以实现退出容器且不停止容器。

Docker实操

Docker容器化部署Nginx

# 下载nginx镜像
docker pull nginx
# 启动nginx容器
docker run -d --name nginx01 -p 
### 回答1: 要下载Docker笔记,首先需要了解Docker是什么以及其使用场景。 Docker是一种开源的容器化平台,可以帮助用户打包、部署和运行应用程序。通过使用容器化技术,用户无需担心运行环境的差异,可以将应用程序和其依赖项打包到一个可移植的容器中,随时在不同的环境中运行。 要下载Docker笔记,可以按照以下几个步骤进行操作: 1. 首先,需要在计算机上安装Docker。可以从Docker官方网站(https://www.docker.com/)上下载适合自己操作系统的Docker安装包,并按照安装指南进行安装。 2. 安装完成后,需要启动Docker服务。根据操作系统的不同,可以在启动菜单或终端中找到Docker应用程序,并点击打开。在Docker控制台中,可以查看、管理容器以及进行其他操作。 3. 接下来,需要搜索并下载Docker笔记的镜像。可以使用Docker Hub(https://hub.docker.com/)这个官方的镜像仓库,搜索关键词以找到合适的笔记镜像。在搜索结果中,会显示镜像的名称、描述、标签等信息,选择一个合适的镜像。 4. 找到想要下载的笔记镜像后,可以使用Docker命令行工具或Docker控制台中的图形界面来下载镜像。通过输入命令`docker pull 镜像名称:标签`,即可下载对应的笔记镜像到本地。 5. 下载完成后,可以使用`docker images`命令在本地查看已下载的镜像列表。根据下载的笔记镜像的名称和标签,可以使用`docker run`命令来创建并启动一个容器,从而运行笔记。 通过以上步骤,就可以成功下载Docker笔记并在本地运行。希望这些信息对您有帮助! ### 回答2: 要下载Docker笔记,首先需要知道从哪里获取这些笔记Docker有一个官方文档网站,其中包含了大量关于Docker的技术文档、教程和示例以及各种使用场景的说明。用户可以访问Docker官方网站,在文档部分进行浏览和搜索,找到所需的笔记。 在Docker官方文档网站上,用户可以按照主题、标签或关键字进行检索,以找到相关的笔记。网站还提供了各种文件格式的下载选项,包括PDF、EPUB和HTML版本,用户可以根据自己的使用习惯选择适合的格式进行下载。 此外,还有一些第三方资源库和网站提供了Docker相关的笔记下载。例如GitHub上有很多开源项目,其中包含了Docker的使用笔记和示例代码。用户可以通过在GitHub上搜索关键字"Docker笔记"或"Docker notes"来找到相关的项目,然后根据项目的说明进行下载。 总之,下载Docker笔记可以通过Docker官方文档网站或第三方资源库进行。用户可以根据自己的需求和偏好选择下载适合自己的格式和来源。 ### 回答3: 要下载 Docker 笔记,首先需要确保已经安装了 Docker 客户端工具。然后按照以下步骤进行下载: 1. 打开终端或命令提示符,输入以下命令来下载 Docker 笔记Docker 镜像: ``` docker pull [镜像名称] ``` 这里的 `[镜像名称]` 是 Docker Hub 上提供的 Docker 镜像名称,可以根据需要搜索并选择合适的镜像。 2. 等待镜像下载完成后,使用以下命令来创建和运行一个 Docker 容器,并将笔记下载到本地: ``` docker run -it --name [容器名称] [镜像名称] [下载命令] ``` 这里的 `[容器名称]` 是用于标识容器的名称,`[下载命令]` 是具体的下载命令,可以根据下载方式的不同进行相应的设置。 3. 等待下载完成后,可以使用以下命令来停止并删除容器: ``` docker stop [容器名称] docker rm [容器名称] ``` 这里的 `[容器名称]` 是之前创建容器时指定的名称。 通过以上步骤,你就可以成功下载 Docker 笔记到本地了。记得根据实际需求选择适合的 Docker 镜像和下载命令,同时也可以通过 Docker Hub 上的文档和社区提供的资源,了解更多有关 Docker 的使用方法和技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值