安装
Centos
只展示在Centos系统下的安装,其他的可以参考官方网站上的教程。注意:要替换源,否则会很慢,甚至安装不了。
docker安装:docs.docker.com/engine/inst…
docker-compose安装:docs.docker.com/compose/ins…
Centos7安装docker和docker-compose步骤:
注意:rpm安装和package安装选择一个即可。
-
卸载旧版本(如果是新服务器不需要执行这步)
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd -
使用rpm安装
# 1. 设置存储库 yum install -y yum-utils yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast ####################注意:2和3只用执行一个即可#################### # 2. 安装新版docker sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 3. 安装特定版本的docker yum list docker-ce --showduplicates | sort -r sudo yum install -y docker-ce-<V> docker-ce-cli-<V> containerd.io docker-buildx-plugin docker-compose-plugin -
使用package安装
# 打开网站 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ # 下载所需要的rpm文件: containerd.io-1.6.9-3.1.el7.x86_64.rpm, docker-buildx-plugin-0.11.2-1.el7.x86_64.rpm, docker-ce-24.0.7-1.el7.x86_64.rpm, docker-ce-cli-24.0.7-1.el7.x86_64.rpm, docker-compose-plugin-2.6.0-3.el7.x86_64.rpm # 版本可以选择不同的,也可以按照上面给的。上传服务器某个文件夹下,比如: /opt/module,如果没有该文件夹,可以使用mkdir创建 cd /opt/module yum install *.rpm -
启动docker
systemctl start docker # 设置开机启动 systemctl enable docker -
测试
docker run hello-world 或者 docker version -
安装docker-compose
curl -SL https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose # 如果比较慢的话,可以打开 https://github.com/docker/compose/releases 下载 docker-compose-linux-x86_64 # 上传服务器 /usr/local/bin 目录下, # 更改文件名: mv docker-compose-linux-x86_64 docker-compose 变为可执行文件: chmod +x /usr/local/bin/docker-compose # 测试 docker-compose -v -
配置阿里云镜像加速
# 登录自己的阿里云账号,打开网站: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["自己的加速器地址"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
镜像
Docker运行容器之前需要本地存在对应的镜像,如果镜像不存在,会先尝试从默认镜像仓库下载(docker hub仓库),可以通过配置,使用自定义的镜像仓库。参考安装的第七步
所有命令都可以使用: docker xx --help 查找帮助手册
-
获取镜像,如果不指定TAG,默认选择latest标签
docker pull NAME[:TAG] -
查看镜像信息
images
# 列出所有镜像 docker images # 获取匹配的镜像名:版本, service 为将要被匹配的镜像名 docker images|grep service|awk '{print $1":"$2}'tag
# 为本地镜像添加任意的tag docker tag NAME:TAG NEW_NAME:NEW_TAGinspect
# 获取镜像的详细信息 docker inspect NAME:TAG # 获取其中一项 docker inspect -f {{".Config.Cmd"}} NAME:TAGhistory
# 获取镜像的创建信息 docker history NAME:TAG # 输出完整的命令 docker history --no-trunc NAME:TAG -
搜索镜像
docker search NAME -
删除和清理镜像
删除
# 删除镜像 docker rmi NAME:TAG # 强制删除镜像 docker rmi -f NAME:TAG清理
docker image prune -
创建镜像
基于已有镜像的容器创建
# CONTAINER_ID 可以通过 docker ps 获取 docker commit CONTAINER_ID NAME:TAG基于本地模板的导入
# 将一个容器导出为tar包 docker export CONTAINER_ID > xx.tar.gz docker import - NAME:TAG < xx.tar.gz基于Dockerfile创建
docker build -t NAME:TAG . -
存出和载入镜像
# 存出镜像 docker save -o xx.tar.gz NAME:TAG # 载入镜像 docker load -i xx.tar.gz -
上传镜像
注意:dockergjy可以替换为你自己的docker hub的名称,否则会失败
# 首先登录,输入用户名和密码 docker login # 给源镜像打标签 docker tag NAME:TAG dockergjy/NAME:TAG # 上传镜像 docker push dockergjy/NAME:TAG
容器
容器是镜像的一个运行实例。本部分介绍:创建、启动、终止、进入、删除、导入、导出操作。
-
创建容器
docker create NAME:TAG # 创建容器 docker start NAME:TAG # 启动容器 docker run NAME:TAG # 创建并启动容器 docker logs -f CONTAINER_ID # 追踪容器的日志当镜像不存在时,会自动下载带有latest版本的镜像。
常用的相关参数
选项 描述 -d 在后台运行 -p 映射端口。hostPort:containerPort --restart='no' 重启策略。no、always、on-failure --rm=true 容器退出时是否自动删除。不能和 -d同时使用。true、false -v 挂在主机的文件卷到容器内。主机路径:容器路径 --name='' 指定名称。 -it 交互时启动 -
停止容器
docker pause CONTAINER_ID # 暂停一个运行的容器 docker unpause CONTAINER_ID # 恢复一个暂停的容器 docker stop CONTAINER_ID # 停止一个容器 docker container prune # 清理所有处于停止状态的容器 docker restart CONTAINER_ID # 将一个容器先停止在启动。 -
进入容器
docker exec -it CONTAINER_ID /bin/bash -
删除容器
docker rm CONTAINER_ID docker rm -f CONTAINER_ID # 强制删除一个正在运行的容器 docker rm -f $(docker ps -aq) # 删除所有容器 docker rm -f $(docker ps -a | grep service | awk '{print $1}') # 强制删除名为service的容器 -
导入导出容器
docker export CONTAINER_ID > xx.tar.gz docker import - NAME:TAG < xx.tar.gz -
查看容器
容器详情
docker container inspect CONTAINER_ID docker container inspect -f {{'.State.Status'}} CONTAINER_ID # 查看某一项容器内进程
docker top CONTAINER_ID统计信息
# 会显示CPU、内存、存储、网络等使用情况的统计信息 docker stats CONTAINER_ID -
其他命令
复制文件
docker cp a.txt CONTAINER_ID:/data # 将系统文件复制到容器内部 docker cp CONTAINER_ID:/data/a.txt /root/ # 将容器文件复制到系统内查看变更
docker diff CONTAINER_ID查看端口映射
docker port CONTAINER_ID