目录
1.安装及配置
1.1 在线安装
1.1.1 安装docker
1.1.2 安装docker-compose
1.2 离线安装
1.2.1 安装docker
1.2.2 安装docker-compose
1.3 docker配置
1.3.1 配置docker镜像(可选,如不修改存放位置可忽略)
1.3.2 docker 登录镜像仓库
2 docker 常用操作和命令
2.1 docker清理镜像
2.2 docker-compose常用命令
2.3 docker常用命令
1.安装及配置
Docker安装版本为:24.0.2
Docker-Compose 版本:2.17.2
1.1 在线安装
1.1.1 安装docker
(1)卸载旧版本(如果安装过,未安装过的系统可忽略这一步)
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
(2)使用yum安装yum-utils工具包
yum install -y yum-utils
(3) 设置国内的阿里云镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
(4)安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
观察点日志,如果没有问题一路都选YES就行
(5)启动docker并检查
启动命令
systemctl start docker
验证命令
//查看启动状态systemctl status docker//查看安装版本docker version
1.1.2 安装docker-compose
(1) 卸载旧版本(如果安装过,未安装过的系统可忽略这一步)
rm /usr/local/bin/docker-compose
(2)下载docker-compose文件,移动到bin目录
curl -L https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
访问github有点慢,耐心等待下载完成
(3)添加执行权限
chmod +x /usr/local/bin/docker-compose
(4)验证
docker-compose --version
1.2 离线安装
1.2.1 安装docker
(1)获取安装包
docker离线安装包
(2)解压并安装
//进入opt目录下cd /opt//在opt目录下创建docker目录mkdir docker//进入docker 目录下cd docker
上传从(1)获取的zip包到 /opt/docker目录下并解压
//解压unzip -o docker.zip//执行sh install.sh docker-20.10.9.tgz //查看安装版本docker version
1.2.2 安装docker-compose
(1)获取安装文件
dock-compose离线安装包
(2)上传(1)中获取的文件(docker-compose-linux-x86_64)到 /opt/docker目录下
//移动目录到/usr/local/bin中mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose//添加授权chmod +x /usr/local/bin/docker-compose//查看安装版本docker-compose -v
1.3 docker配置
1.3.1 配置docker镜像(可选,如不修改存放位置可忽略)
(1)编辑或者增加 /etc/docker/daemon.json 配置,配置docker镜像标准输出日志的大小,以及docker镜像的存放位置(默认存放在 /var 目录下,如果磁盘空间不足,一定要修改下面配置中的 “data-root”)
{ "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "10" }, "data-root": "/data/docker", "registry-mirrors": [ "https://registry.cn-beijing.aliyuncs.com" ]}
配置说明:
log-driver:
json-file:
指定日志驱动为 json-file
。这意味着 Docker 将会为每个容器的日志使用一个 JSON 格式的日志文件。使用 json-file
驱动可以方便地解析和管理日志。 log-opts:
max-size
: 10m
:指定单个日志文件的最大大小为 10MB。当达到这个大小后,Docker 会自动创建一个新的日志文件。max-file
: 10
:最多保留 10 个日志文件。当旧的日志文件达到这个数量后,最早的日志文件会被自动删除。 data-root:
/data/docker
:指定 Docker 的数据目录为 /data/docker
。这通常是 Docker 守护进程存储镜像、容器、网络和其它数据的目录。 registry-mirrors:
https://registry.cn-beijing.aliyuncs.com
:指定一个镜像仓库的镜像地址,这里是阿里云的镜像地址。当 Docker 从镜像仓库拉取或推送镜像时,它会首先尝试从这个镜像仓库获取或推送。这可以帮助优化镜像的拉取速度,特别是在某些地理位置上。 (2) 修改完之后,使用以下命令重启 docker
//重新加载配置文件systemctl daemon-reload//重启dockersystemctl restart docker
1.3.2 docker 登录镜像仓库
用以下命令 登录你的镜像仓库,按提示输入密码。
docker login --username=XXXXX xxx.xxx.com
PS:阿里云,百度云,腾讯云应该都可以免费搭建的个人镜像仓库,也可以使用 Docker Hub(https://hub.docker.com/),但是国内访问比较慢。
2 docker 常用操作和命令
2.1 docker清理镜像
清理未使用的镜像以及相关的无用镜像层(dangling layers):
docker image prune -a
2.2 docker-compose常用命令
docker-compose命令需要在docker-compose.yml文件同级执行
docker-compose up -d 重新构建容器完成部署
docker-compose logs -f --tail 100 service-name 或者 docker logs –f –tail 100 容器ID 查看特定服务的日志观察。
docker-compose ps
2.3 docker常用命令
# service 命令的用法 $ sudo service docker start # systemctl 命令的用法 $ sudo systemctl start docker # 列出本机的所有 image 文件。 $ docker image ls # 删除 image 文件 $ docker image rm [imageName] # 将 image 文件从仓库抓取到本地。 docker image pull library/hello-world # 列出本机正在运行的容器 $ docker container ls # 列出本机所有容器,包括终止运行的容器 $ docker container ls --all # 发出 SIGKILL 信号,杀掉容器,不会删除容器运行中产生的数据。 docker container kill [containerID] # 删除一个容器,并删除容器运行中产生的数据 docker container rm [containerID] # docker container run命令会从 image 文件生成容器。 $ docker container run -p 8000:3000 -it koa-demo /bin/bash # 或者 $ docker container run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash -- -p参数:容器的 3000 端口映射到本机的 8000 端口。 -- -it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。 -- koa-demo:0.0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。 -- /bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。 # 用来启动已经生成、已经停止运行的容器文件。 $ docker container start [containerID] # 用来终止容器运行,相当于向容器里面的主进程发出 SIGTERM 信号,然后过一段时间再发出 SIGKILL 信号。 $ docker container stop [containerID] # 用来查看 docker 容器的输出 $ docker container logs [containerID] -f : 跟踪日志输出 # docker logs -f mynginx --since :显示某个开始时间的所有日志 -t : 显示时间戳 --tail :仅列出最新N条容器日志 # 例如docker logs --since="2016-07-01" --tail=10 mynginx # 用于进入一个正在运行的 docker 容器 $ docker exec -it [containerID] sh # 用于从正在运行的 Docker 容器里面,将文件拷贝到本机 $ docker container cp [containID]:[/path/to/file] . # 用于构建registry.cn-beijing.aliyuncs.com/xxxx/aaa:1.0.8镜像 $ docker build -t registry.cn-beijing.aliyuncs.com/xxx/aaa:1.0.8 . # 用于将构建的镜像推送到仓库 $ docker push registry.cn-beijing.aliyuncs.com/xxxx/aaa:1.0.8
遇到的问题:
1. 服务器无法连接或连接GitHub过慢,无法下载docker-compose文件。
解决方式参考:Linux服务器无法访问GitHub问题解决-CSDN博客