在Linux中安装docker

docker需要安装在Centos7及以上版本的Linux系统中。

在Linux中有两种安装docker的方法,一种是使用官方安装脚本自动安装docker,另一种是手动安装docker。

使用官方安装脚本自动安装docker

第一步,安装docker。

# 官方安装脚本安装

命令:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 也可以使用国内daocloud一键安装

命令:curl -sSL https://get.daocloud.io/docker | sh

第二步,测试Docker。

命令:docker run hello-world

若结果显示“docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?”,则运行如下命令:

systemctl daemon-reload

systemctl restart docker.service

再次验证:docker run hello-world

第三步,设置开机启动。

# 允许开机启动

命令:systemctl enable docker

第四步,查看docker版本

# 没启动docker之前查看docker版本

命令:docker -v

或    docker version

手动安装docker

第一步,卸载旧版本docker。

若系统中已安装旧版本docker,则需要卸载旧版本docker以及与旧版本docker相关的依赖项。

命令:yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

第二步,安装gcc依赖。

命令:yum -y install gcc gcc-c++

第三步,使用Docker仓库进行安装。

在新主机上首次安装Docker Engine-Community之前,需要设置Docker仓库。之后,可以从仓库安装和更新Docker。

# 设置仓库,安装所需的软件包。

命令:yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置稳定的仓库,使用官方源地址(比较慢)

命令:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 可以选择国内的一些源地址,如阿里云

命令:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 可以选择国内的一些源地址,如清华大学源

命令:yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

第四步,安装Docker Engine-Community。

# 安装最新版本的Docker Engine-Community和containerd

命令:yum install docker-ce docker-ce-cli containerd.io

若启用了多个Docker仓库,则在利用“yum install”或“yum update”命令安装Docker时没有指定Docker版本情况下,进行Docker安装或更新将始终安装最高版本的Docker。

Docker安装完默认未启动,并且已经创建好docker用户组,但该用户组下没有用户。

# 安装特定版本的Docker Engine-Community

# 列出存储库中可用的版本并按版本号从高到低进行排序

命令:yum list docker-ce --showduplicates | sort -r

# 通过其完整的软件包名称安装特定版本,如docker-ce-19.03.15。

命令:yum install docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io

第五步,启动Docker。

命令:systemctl enable docker

systemctl start docker

systemctl restart docker

第六步,验证Docker Engine-Community是否正确安装。

命令:docker version

docker run hello-world

若结果显示“Hello from Docker!”,则说明Docker Engine-Community正确安装。

Docker常用命令

# 查看docker版本

docker version

# 查看docker详细信息

docker info

# 查看docker命令

docker --help

镜像命令

# 查看docker镜像

docker images

# 列出本地所有的镜像

docker images -a

# 只显示镜像ID

docker images -q

# 显示镜像的摘要信息

docker images --digests

# 显示完整的镜像信息

docker images --no-trunc

# 从Docker Hub上查找tomcat镜像

docker search tomcat

# 从Docker Hub上下载tomcat镜像

docker pull tomcat

或 docker pull tomcat:latest

# 提交容器使之成为一个新的镜像

docker commit -m "提交的描述信息" -a "作者" 容器ID 要创建的目标镜像名称:[标签名]

如:docker commit -m "新的tomcat" -a "YM" b10b019a21c2 mytomcat:1.2

# 从Docker中删除hello-world镜像

docker rmi hello-world

# 从Docker中强制删除hello-world镜像

docker rmi -f hello-world

# 从Docker中强制删除hello-world镜像和nginx镜像

docker rmi -f hello-world nginx

# 通过docker images -p查询到的镜像ID来删除所有镜像

docker rmi -f $(docker images -p)

容器命令

# 根据镜像新建并启动容器。IMAGE是镜像ID或镜像名称。

docker run -it -d --name tomcat1 tomcat:latest /bin/bash

# 列出当前所有正在运行的容器

docker ps

# 列出所有的容器

docker ps -a

# 列出最近创建的容器

docker ps -l

# 列出最近创建的3个容器

docker ps -n 3

# 只显示容器ID

docker ps -q

# 显示当前所有正在运行的容器完整信息

docker ps --no-trunc

# 启动容器

docker start 容器ID或容器名称

# 重新启动容器

docker restart 容器ID或容器名称

# 停止容器

docker stop 容器ID或容器名称

# 强制停止容器

docker kill 容器ID或容器名称

# 删除容器

docker rm 容器ID或容器名称

或  docker rm -f 容器ID或容器名称强制

# 删除多个容器

docker rm -f $(docker ps -a -q)

# 查看容器日志

docker logs -f -t --since --tail 容器ID或容器名称

如:docker logs -f -t --since=”2021-09-10” --tail=10 b10b019a21c2

-f:查看实时日志

-t:查看日志产生的日期

--since:只输出指定日期之后的日志

--tail=10:查看最后的10条日志

# 查看容器内运行的进程

docker top 容器ID或容器名称

# 查看容器内部细节

docker inspect 容器ID或容器名称

# 进到容器内

docker attach 容器ID

或  docker exec 容器ID

# 宿主机路径从容器内拷贝文件到宿主机

docker cp 容器ID:容器内的文件路径

卸载docker

# 卸载docker

命令:systemctl stop docker

yum remove docker-ce docker-ce-cli containerd.io

# 删除安装包

命令:yum remove docker-ce

# 删除镜像、容器、配置文件等内容

命令:rm -rf /var/lib/docker

rm -rf /var/lib/containerd

你可能感兴趣的:(2022运维,docker,linux,容器,服务器,运维)