软件安装与卸载
安装
- 卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,可以从存储库安装和更新Docker。安装yum-utils包(提供yum-config-manager实用程序)并设置稳定的存储库。
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 设置镜像加速(通过国内的资源下载docker镜像),该步骤可在安装完成后执行,执行完成后重启docker服务(systemctl restart docker)
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
EOF
- 安装软件
yum install -y docker-ce docker-ce-cli containerd.io
- 启动docker,并且开机自启
systemctl start docker && systemctl enable docker
- 验证安装成功
docker info
卸载
- 卸载安装
yum remove -y docker-ce docker-ce-cli containerd.io
- 删除镜像容器等
rm -rf /var/lib/docker
常用镜像操作
- 查看本地镜像
docker images
- 拉取镜像
docker pull <imageName>:<tag>
# docker pull centos:8
# docker pull centos
- 删除镜像
docker rmi <IMAGE ID>
- 删除全部镜像
docker rmi `docker images -q`
- 将镜像保存为压缩包
docker save <REPOSITORY:TAG> -o=<yourName>.tar
- 从压缩包加载镜像
docker load < <yourName>.tar
常用容器操作
- 查看全部容器
docker ps -a
- 查看在运行中的容器
docker ps
- 运行容器
-d:后台运行
-it:使用交互方式,进入容器
-p:端口映射(如 -p 8080:8080)
-v:挂载外部卷(如 -v /data:/data。使用绝对路径或者‘./’指定本级目录)
docker run <imageId>
# docker run -itd --name test 5d0da3dc9764
- 容器运行完自动删除容器
docker run -v /root/app/data:/data --rm 149ea3db02e0 python3 /data/test.py
- 停止一个容器
docker stop <CONTAINER ID>
- 停止所有容器
docker stop $(docker ps -a -q)
- 启动一个容器
docker start <CONTAINER ID>
- 进入正在运行的容器
docker exec -it <CONTAINER ID> /bin/bash
#或者使用名字进入 docker exec -it <NAMES> /bin/bash
#docker exec -it 89e0fabc7275 /bin/bash
- 退出容器
exit
- 导出容器为压缩包
docker export 3cce9c908216 > my.tar
- 导入容器压缩包为镜像
docker import - mycentos-image < mycentos_export.tar
- 运行该新镜像
# 只执行bash其他什么也不做,容器只会在后台挂着。
docker run -itd f51981ad0f9c bash
# 执行'command'命令并挂起,'command'可以是需要启动的程序命令
# 当一个容器变成镜像再变成容器时,可以看作一个新的容器,此前dockerfile中的cmd命令失效。
docker run [OPTIONS] IMAGE_NAME bash -c "COMMAND"
- 将容器打包为镜像
docker commit <CONTAINER ID> <name>:<version>
- 将自己的镜像推送到远程仓库
先登录docker(docker login)。远程仓库中的路径要和本地镜像一致。修改本地镜像名称和tag的方法示例:
docker tag mytomcat:v1 username/mytomcat:v1
docker push <userName>/<imageName>:<tag>
- 删除容器
docker rm <CONTAINER ID>
- 删除全部容器
docker rm -f `docker ps -a -q`
Dockerfile的使用
- 标准示例
# 拉取基础镜像
FROM centos:7
# 指定变量
ENV NODE_VERSION 7.2.0
# 声明端口
EXPOSE 8080 8081
# 在镜像当中运行命令,在docker build时执行RUN
RUN yum install -y vim
# 将源文件复制到容器中,只能使用Dockerfile所在的相对路径
#在Dockerfile中,COPY指令的第一个参数是相对于构建上下文(build context)的路径。绝对路径可能会
#导致报错。
COPY test.txt /mydir/
# 在 docker run时执行CMD
CMD echo $NODE_VERSION
- 根据Dockerfile 构建镜像
docker build -t <imageName>:<tag> .
其他常用操作
-
查看镜像的详细i信息
docker inspect <imageId>
-
指定容器的日志配置
它启动一个新的 Docker 容器,并设置每个日志文件的大小为10MB,最多保留3个日志文件docker run -d --log-opt max-size=10m --log-opt max-file=3 nginx
-
这将删除所有已停止容器的日志,最后使用时间超过24小时的日志保留,可以根据需要更改24h参数来适应您的需求。
docker container prune --filter "until=24h"
-
要为单个容器清理日志,请运行以下命令:
docker logs <container-id> > /dev/null
-
这个命令可以查看特定容器的日志,"–tail 数字"表示查看最后的多少条日志。
docker logs --tail 数字 容器ID
-
这个命令可以查看容器实时日志,"–tail 数字"表示查看最后的多少条日志。
docker logs --tail 数字 -f 容器ID
参考文档
- 官方文档 https://docs.docker.com/
- yum安装报错 https://blog.csdn.net/weixin_43252521/article/details/124409151