在Centos7上安装Docker

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 在Centos7上安装Docker-ce直接用yum install docker -y安装的docker版本为1.12,但是docker发展很快,现在都18.03.1了。

在Centos7上安装Docker-ce直接用yum install docker -y安装的docker版本为1.12,但是docker发展很快,现在都18.03.1了。docker-ce是指docker的社区版。1、安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源yum install -y yum-utils

2、添加Docker-CE的yum源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

如果下不了就直接拷贝文件到 /etc/yum.repos.d/docker-ce.repo如果不能更新 显示被锁 就删除那个锁的文件rm .pid的这个文件3、更新yum源索引yum makecache fast

4、yum安装 docker-ceyum install docker-ce -y

5、启动与停止Dockersystemctl命令是系统服务管理器指令,它是 service 和 chkconfig 两个命令组合。?启动docker:systemctl start?docker?停止docker:systemctl stop?docker?重启docker:systemctl restart?docker?查看docker状态:systemctl status?docker?开机启动:systemctl enable?docker

6、验证是否安装成功docker info

列出docker下的所有镜像:docker images

?REPOSITORY:镜像所在的仓库名称?TAG:镜像标签?IMAGE ID:镜像ID?CREATED:镜像的创建日期(不是获取该镜像的日期)?SIZE:镜像大小?这些镜像都是存储在Docker宿主机的/var/lib/docker目录下

3.3搜索镜像如果你需要从网络中查找需要的镜像,可以通过以下命令搜索docker search 镜像名称

?NAME:仓库名称?DESCRIPTION:镜像描述?STARS:用户评价,反应一个镜像的受欢迎程度?OFFICIAL:是否官方AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

3.4.1从Docker Hub拉取Docker镜像首页,包括官方镜像和其它公开镜像

使用命令拉取:docker pull centos:7目前国内访问docker hub速度上有点尴尬,使用docker Mirror势在必行。现有国内提供docker镜像加速服务的商家有不少,下面重点daocloud镜像加速。3.4.1.1使用Docker加速器针对Docker客户端版本大于1.8的用户注册https://www.daocloud.io

在Linux命令行下执行如下命令来使用加速器:curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://8b4bf98a.m.daocloud.io

systemctl daemon-reload

systemctl restart docker

3.5删除镜像1、docker rmi $IMAGE_ID:删除指定镜像2、docker rmi docker images -q:删除所有镜像

4.Docker容器操作4.1查看容器?查看正在运行容器:docker ps?查看所有的容器(启动过的历史容器):docker ps –a

?查看最后一次运行的容器:docker ps –l

?查看停止的容器docker ps -f status=exited

4.2创建与启动容器?创建容器常用的参数说明:?创建容器命令:docker run?-i:表示运行容器?-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。?--name :为创建的容器命名。?-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。?-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。?-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

4.1.1交互式容器创建一个交互式容器并取名为mycentosdocker run -it --name=mycentos centos:7 /bin/bash这时我们通过ps命令查看,发现可以看到启动的容器,状态为启动状态

使用exit命令 退出当前容器

然后用ps -a 命令查看发现该容器也随之停止:

守护式容器创建一个守护式容器:如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。命令如下(容器名称不能重复):docker run -di --name=mycentos2 centos:7?登录守护式容器方式:docker exec -it container_name (或者 container_id) /bin/bash(exit退出时,容器不会停止)

4.3停止与启动容器?停止正在运行的容器:docker stop $CONTAINER_NAME/ID

?启动已运行过的容器:docker start $CONTAINER_NAME/ID

4.4文件拷贝如果我们需要将文件拷贝到容器内可以使用cp命令docker cp 需要拷贝的文件或目录 容器名称:容器目录也可以将文件从容器内拷贝出来docker cp 容器名称:容器目录 需要拷贝的文件或目录4.5目录挂载我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。创建容器 添加-v参数 后边为 宿主机目录:容器目录docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos2 centos:7如果你共享的是多级的目录,可能会出现权限不足的提示。

这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题4.6查看容器IP地址我们可以通过以下命令查看容器运行的各种数据docker inspect mycentos2也可以直接执行下面的命令直接输出IP地址docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos2

4.7删除容器?删除指定的容器:docker rm $CONTAINER_ID/NAME

注意,只能删除停止的容器?删除所有容器:docker rm docker ps -a -q

5.部署应用5.1 MySQL部署5.1.1拉取MySQL镜像docker pull mysql

查看镜像

5.1.2创建MySQL容器docker run -di --name=123_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql-p 代表端口映射,格式为 宿主机映射端口:容器运行端口-e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码5.1.3进入MySQL容器,登陆MySQL 进入mysql容器docker exec -it 123_mysql /bin/bash登陆mysqlmysql -u root -p5.1.4远程登陆MySQL(1)我们在我们本机的电脑上去连接虚拟机Centos中的Docker容器,这里192.168.247.130是虚拟机操作系统的IP

5.1.5查看容器IP地址我们可以通过以下命令查看容器运行的各种数据docker inspect 123_mysql运行效果如下:

我们可以看到我们的数据库服务器的IP是172.17.0.2 5.2 tomcat部署5.2.1拉取tomcat镜像docker pull tomcat:8.5-jre85.2.2创建tomcat容器创建容器用于部署java web应用 -p表示地址映射docker run -di --name=123_tomcat -p 9000:8080 -v /usr/local/myhtml:/usr/local/tomcat/webapps --privileged=true tomcat:8.5-jre85.3 Nginx部署5.3.1拉取Nginx镜像docker pull nginx5.3.2创建Nginx容器docker run -di --name=123_nginx -p 80:80 nginx5.3.3测试Nginx浏览器地址栏输入: http://192.168.247.135

5.3.4配置反向代理官方的nginx镜像,nginx配置文件default.conf 在/etc/nginx/conf.d目录下。在容器内编辑配置文件不方便,我们可以先将配置文件从容器内拷贝到宿主机,编辑修改后再拷贝回去。(1)从容器拷贝配置文件到宿主机docker cp 123_nginx:/etc/nginx/conf.d/default.conf default.conf (2)编辑default.conf,添加反向代理配置upstream daili { server 172.17.0.7:8080;}server { listen 80; server_name www.test.com; location / { proxy_pass http://daili; index index.html index.htm; }}

(3)将修改后的配置文件拷贝到容器docker cp default.conf 123_nginx:/etc/nginx/conf.d/default.conf(4)重新启动容器docker restart 123_nginx(5)设置域名指向192.168.247.135 www.test.com 5.4 Redis部署5.4.1拉取Redis镜像docker pull redis5.4.2创建Redis容器 docker run -di --name=123_redis -p 6379:6379 redis

5.4.3客户端测试在你的本地电脑命令提示符下,用window版本redis客户端测试redis-cli -h 192.168.247.135

6.备份与迁移6.1容器保存为镜像我们可以通过以下命令将容器保存为镜像docker commit 123_nginx mynginx123_nginx是容器名称mynginx是新的镜像名称此镜像的内容就是你当前容器的内容,接下来你可以用此镜像再次运行新的容器6.2镜像备份docker save -o mynginx.tar mynginx-o 输出到的文件执行后,运行ls命令即可看到打成的tar包

<pre spellcheck="false" class="md-fences md-end-block contain-cm modeLoaded" lang="" contenteditable="false" cid="n484" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 0.9em; white-space: normal; display: block; break-inside: avoid; text-align: left; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(223, 226, 229); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">到此,镜像就都打包完成了,如果在一台新机器还原docker镜像,只需要使用:docker load --input centos_nginx.tar就可以了。6.3镜像恢复与迁移</pre>

首先我们先删除掉mynginx镜像然后执行此命令进行恢复docker load --i mynginx.tar-i 输入的文件执行后再次查看镜像,可以看到镜像已经恢复

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
11天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
12天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
16天前
|
存储 Linux Docker
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
17 2
|
19天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
56 3
|
20天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
36 2
|
22天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
65 2
|
22天前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
59 2
|
23天前
|
安全 Linux Shell
docker运行centos提示Operation not permitted
通过上述步骤,可以有效排查和解决在Docker中运行CentOS容器时遇到的"Operation not permitted"错误。这些措施涵盖了从权限配置、安全策略到容器运行参数的各个方面,确保在不同环境和使用场景下都能顺利运行容器。如果你需要进一步优化和管理你的Docker环境
37 3
|
24天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
56 2
|
8天前
|
存储 安全 Linux
VMware安装CentOS7
【11月更文挑战第11天】本文详细介绍了在 VMware 中安装 CentOS 7 的步骤,包括准备工作、创建虚拟机、配置虚拟机硬件和安装 CentOS 7。具体步骤涵盖下载 CentOS 7 镜像文件、安装 VMware 软件、创建和配置虚拟机硬件、启动虚拟机并进行安装设置,最终完成 CentOS 7 的安装。在安装过程中,需注意合理设置磁盘分区、软件选择和网络配置,以确保系统的性能和功能满足需求。
下一篇
无影云桌面