注:本文不涉及docker安装部署,是作者日常使用的docker笔记,需要部署操作的还需另外搜索文献
Docker
Docker是一组平台即服务(PaaS)的产品。它基于操作系统层级的虚拟化技术,将软件与其依赖项打包为容器。托管容器的软件称为Docker引擎。Docker能够帮助开发者在轻量级容器中自动部署应用程序,并使得不同容器中的应用程序彼此隔离,高效工作。该服务有免费和高级版本。它于2013年首次发布,由Docker, Inc开发。
一、工具下载
玩Docker前,需要下载一些命令工具,方便后续命令操作
- yum
- docker-compose
- wget
二、基础配置
2.1 daemon.json
daemon.json是Docker守护进程的配置文件,其中可以进行镜像地址等等配置
- 镜像配置
参数registry-mirrors用来配置镜像地址,使用数组的方式填入
{
"registry-mirrors": [
"https://......",
"https://......"
]
}
三、命令解释
-
sudo systemctl status docker
开机自启动
sudo systemctl is-enabled docker
检查是否开机自启动 -
docker update 容器名称 --restart=always
设置容器开机自启 -
dockerd
监听来自客户端的请求,如创建、启动、停止容器等;控制Docker容器的生命周期;负责与容器进行通信,确保容器能够正确地运行和交互 -
docker run -d --network=host -e TZ=Asia/Shanghai test:0.0.1
运行镜像名称为test,版本为0.0.1的镜像- -d或–detach:让容器在后台运行
- –network=host:将容器的网络设置为主机网络,这意味着容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口
- -e TZ=Asia/Shanghai:设置环境变量TZ的值为Asia/Shanghai,这样容器内的系统时间和时区将与上海时区保持一致
-
docker run-p 8080:8080 test
使用Docker运行了一个镜像名为test的Java应用程序,将容器的8080端口映射到主机的8080端口- docker run:是Docker的一个命令,用于运行一个新的容器实例
- -p 8080:8080:是端口映射参数,它将容器内部的8080端口映射到主机上的8080端口,使得可以通过主机的8080端口访问容器内运行的应用程序
-
docker logs -f
docker ps -a | grep test | awk '{print $1}'
–tail 100 (标红前后有反引号`)
查看名为“test”的Docker容器的最近100行日志- docker ps -a | grep test:列出所有Docker容器,并过滤出包含“test”的容器
- awk ‘{print $1}’:通过awk命令提取出上一步结果中的第一列,即容器的ID
- docker logs -f --tail 100:查看指定容器的日志,-f表示实时跟踪日志输出,–tail 100表示只显示最后100行日志。
-
docker save -o test.tar.gz test:0.0.1
使用Docker的save命令将名为test,标签为0.0.1的镜像保存为一个名为test.tar.gz的tar包- -o参数表示输出到文件
- 会在当前目录生成.tar.gz包
四、网络连接
若需要外部可以请求访问Docker,需要配置tcp
- vi /usr/lib/systemd/system/docker.service
进入docker.servie文件编辑界面 - 找到ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
在后面加上 -H tcp://ip:2375
- 编辑好后执行:
- sudo systemctl daemon-reload
- sudo systemctl restart docker
若是出现报错,尝试重启服务器