【docker】——CentOS7.0安装docker以及docker命令

简介: 在CentOS中,老版本Docker名称是docker 或docker-engine ,而Docker CE的软件包名称是docker-ce 。因此,如已安装过老版本的Docker,需使用如下命令卸载。

##2.1 CentOS


2.1.1 系统要求


CentOS 7或更高版本

centos-extras 仓库必须处于启用状态,该仓库默认启用,但如果您禁用了该仓库,请按照https://wiki.centos.org/AdditionalResources/Repositories 中的描述重新启用。

建议使用overlay2 存储驱动


2.1.2 yum安装


2.1.2.1 卸载老版本的Docker


在CentOS中,老版本Docker名称是docker 或docker-engine ,而Docker CE的软件包名称是docker-ce 。因此,如已安装过老版本的Docker,需使用如下命令卸载。


sudo yum remove docker \
                  docker-common \
                  docker-selinux \
                  docker-engine


需要注意的是,执行该命令只会卸载Docker本身,而不会删除Docker存储的文件,例如镜像、容器、卷以及网络文件等。这些文件保存在/var/lib/docker 目录中,需要手动删除。


2.1.2.2 安装仓库


执行以下命令,安装Docker所需的包。其中,yum-utils 提供了yum-config-manager 工具;device-mapper-persistent-data 及 lvm2 则是devicemapper 存储驱动所需的包。


sudo yum install -y yum-utils device-mapper-persistent-data lvm2


执行如下命令,安装stable 仓库。必须安装stable 仓库,即使你想安装edge 或test 仓库中的Docker构建版本。


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


[可选] 执行如下命令,启用edge 及test 仓库。edge/test仓库其实也包含在了docker.repo 文件中,但默认是禁用的,可使用以下命令来启用。


sudo yum-config-manager --enable docker-ce-edge    # 启用edge仓库
sudo yum-config-manager --enable docker-ce-test    # 启用test仓库


如需再次禁用,可加上--disable 标签。例如,执行如下命令即可禁用edge仓库。


sudo yum-config-manager --disable docker-ce-edge


TIPS:从Docker 17.06起,stable版本也会发布到edge以及test仓库中。


2.1.2.3 安装Docker CE


执行以下命令,更新yum的包索引


sudo yum makecache fast


执行如下命令即可安装最新版本的Docker CE


sudo yum install docker-ce


在生产环境中,可能需要指定想要安装的版本,此时可使用如下命令列出当前可用的Docker版本。


yum list docker-ce.x86_64  --showduplicates | sort -r


这样,列出版本后,可使用如下命令,安装想要安装的Docker CE版本。


sudo yum install docker-ce-<VERSION>


启动Docker


sudo systemctl start docker


验证安装是否正确。


sudo docker run hello-world


这样,Docker将会下载测试镜像,并使用该镜像启动一个容器。如能够看到类似如下的输出,则说明安装成功。


Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

b04784fba78d: Pull complete

Digest: sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f

Status: Downloaded newer image for hello-world:latest

Hello from Docker!

This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:

1. The Docker client contacted the Docker daemon.

2. The Docker daemon pulled the "hello-world" image from the Docker Hub.

3. The Docker daemon created a new container from that image which runs the

   executable that produces the output you are currently reading.

4. The Docker daemon streamed that output to the Docker client, which sent it

   to your terminal.

To try something more ambitious, you can run an Ubuntu container with:

$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:

https://cloud.docker.com/

For more examples and ideas, visit:

https://docs.docker.com/engine/userguide/


2.1.2.4 升级Docker CE


如需升级Docker CE,只需执行如下命令:


sudo yum makecache fast

然后按照安装Docker的步骤,即可升级Docker。


2.1.2.5 参考文档


CentOS 7安装Docker官方文档https://docs.docker.com/engine/installation/linux/docker-ce/centos/ ,文档中还讲解了在CentOS 7中安装Docker CE的其他方式,本文不作赘述。


2.1.3 shell一键安装


curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh


搞定一切。


2.1.4 加速下载


2.1.4.1 获取加速地址教程:


首先进入阿里云docker库首页 https://dev.aliyun.com/

点击管理中心:


20180309144523721.png


点击加速器:


20180309144535502.png


复制加速地址;


20180309144545377.png


2.1.4.2 加速下载配置


针对Docker客户端版本大于1.10的用户


您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:


sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["你的专属加速地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker


2.1.5 docker常用命令


docker search java #搜索存放在docker hub中的镜像


docker pull java  #从docker registry上下载镜像


docker pull reg.itmuch.com/java:7 #指定的docker registry中下载标签为7的java镜像


docker images     #列出已经下载的镜像


docker rmi hello-world #删除hello-world的镜像


docker rmi -f $(docker images) #强制删除所有docker镜像


docker run java /bin/echo 'hello world' #终端会打印hello world字样,跟本地执行/bin/echo 'hello world' 一样


docker run -d -p 91:80 nginx #启动一个开放端口80到宿主机端口91的nginx容器


docker ps #列出运行中的容器


docker stop 784fd3b #停止容器id为784fd3b的容器


docker kill 784fd3b #强制停止容器


docker run 784fd3b #启动已经停止的容器


docker restart 784fd3b #重启容器(先执行了stop再执行了start)


docker attach 784fd3b #进入容器(不方便,多个窗口同时attach到同一个容器时所有窗口都会同步显示)


nsenter  进入容器操作:

   1. docker ps #获得CONTAINER ID

   2. docker inspect --format "{{.State.Pid}}" CONTAINER ID #获得PID

   3. nsenter --target PID --mount --uts --ipc --net --pid


docker rm 784fd3b #删除指定容器(未启动的容器)


docker rm -f 784fd3b #强制删除启动容器


docker rm -f $(docker ps -a -q) #强制删除所有容器


2.1.6 本文摘自


   1.周立博文:http://www.itmuch.com/docker/02-docker-install/

   2.博客园博文: https://www.cnblogs.com/zhxshseu/p/5970a5a763c8fe2b01cd2eb63a8622b2.html

   3.《Spring Cloud与Docker微服务架构实战》第12章

相关文章
|
2月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
1087 2
|
1月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
348 124
|
2月前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
358 3
docker 安装 Postgres 17.6
|
1月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
347 5
|
1月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
339 2
|
2月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
574 16
|
3月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
332 10
|
3月前
|
运维 网络协议 Linux
CentOS下Bind服务的安装与故障排查
通过以上的步骤,您应该能够在CentOS系统上安装并配置BIND DNS服务,并进行基本的故障排查。
373 0
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
1386 3