资讯专栏INFORMATION COLUMN

Docker入门-安装篇问题处理(CentOS 7)

IT那活儿 / 2657人阅读
Docker入门-安装篇问题处理(CentOS 7)

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!


安装过程问题处理


问题1:CentOS 7系统中yum upgrade和yum update区别

yum update:升级所有包同时也升级软件和系统内核。
yum upgrade:只升级所有包,不升级软件和系统内核。
测试样例:
1)升级前
系统版本:centos5.5
内核版本:2.6.18-194.el5
2)yum upgrade 升级后,只升级所有包,不升级软件和系统内核
系统版本:centos5.7
内核版本:2.6.18-194.el5
3)yum update 升级后,升级所有包同时也升级软件和系统内核
系统版本:centos5.7
内核版本:2.6.18-238.el5
说明:生产环境对软件版本和内核版本要求非常精确,不能随意的进行yum update操作!!

问题2:CentOS 7系统sudo执行命令时报错

提示" username 不在 sudoers 文件中。此事将被报告"。
解决方式:
使用root账号在/etc/sudoers文件中加上:
先赋权:chmod 740 /etc/sudoers
vi /etc/sudoers
username ALL=(root) ALL, !/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
如下图:把docker加上。
即,给账户 username除了修改其他账户密码之外的所有操作权限,然后保存退出即可。

问题3:CentOS 7系统docker安装

第1步:删除旧的docker(如果安装过)
查看当前版本:
rpm -qa | grep docker
docker version
停止docker服务:
systemctl stop docker
卸载旧的docker包:
sudo yum remove docker docker-client docker-client-latest 
docker-common docker-latest docker-latest-logrotate
docker-logrotate docker-selinux docker-engine-selinux
docker-engine docker-ce -y
删除旧的docker文件:
find /etc/systemd -name *docker* -exec rm -f {} ;
find /etc/systemd -name *docker* -exec rm -f {} ;
find /lib/systemd -name *docker* -exec rm -f {} ;
rm -rf /var/lib/docker #删除以前已有的镜像和容器,非必要
rm -rf /var/run/docker
第2步:新建用户和组
使用root用户新建用户和组:
groupadd docker
useradd -d /docker -g docker docker
passwd docker
第3步:使用新建的用户安装docker
方式一:安装CentOS 7自带版本:sudo yum install -y docker
查看docker版本:docker version
这种方式安装的不是最新版docker。
方式二:安装最新稳定版本(推荐)
1)为了方便添加软件源,以及支持devicemapper存储类型,安装如下软件包:

sudo yum update //这一步更新要下载很多东西,可尝试省略。


sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2)添加Docker稳定版本的yum软件源:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3)此处可能因为墙的问题出现超时报错,我们改用阿里源:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4)查看仓库内可选的版本包:
sudo yum list docker-ce --showduplicates | sort -r
5)更新yum软件源缓存,并安装Docker:
sudo yum update
sudo yum install -y docker-ce
6)查看版本:
docker version
7)启动Docker服务:
sudo systemctl daemon-reload
sudo systemctl start docker.service
sudo systemctl status docker.service
8)查看Docker服务日志:
sudo journalctl -u docker.service
方式三:通过脚本安装
用户还可以使用官方提供的 shell脚本来在 Linux系统(目前支持 Ubuntu、 Debian、Oracleserver、 Fedora、 Centos、 Opensuse、 Gentoo等常见发行版)上安装 Docker的最新正式版本,该脚本会自动检测系统信息并进行相应配置:
curl -fsSL https://get.docker.com |sh
或者
wget -qO- https://get.docker.com | sh
如果想尝鲜最新功能,可以使用下面的脚本来安装最新的“尝鲜”版本。但要注意,非稳定版本往往意味着功能还不够稳定,不要在生产环境中使用。
curl -fsSL https://test.docker.com |sh
另外,也可以从store.docker.com/search?offering=community&q=&type=edition找到各个平台上的Docker安装包,自行下载使用。

问题4:docker images执行报错

在CentOS 7上安装Dockers后运行docker images报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
解决办法:
sudo systemctl daemon-reload
sudo systemctl start docker.service
查看Docker服务状态:
sudo systemctl status docker.service  //可以看到Active: active (running)
查看Docker服务日志:
sudo journalctl -u docker.service



docker镜像和容器常用命令


1. 镜像相关操作命令
  • docker images       //列出本地主机上已有的镜像;
  • docker pull 镜像名(如ubuntu)   //默认下载Docker Hub官方仓库中的镜像;
  • docker search 关键字(如mysql) //默认搜索Docker Hub官方仓库中的镜像;
  • docker push 镜像名   //默认把镜像上传到Docker Hub官方仓库中;
  • docker inspect 镜像名|容器    //获取镜像或容器的详细信息;
  • docker tag SOURCE_IMAGE[:TAG]  TARGET_IMAGE[:TAG]  //给镜像添加新标签;
  • docker rmi 镜像名          //删除本地镜像;
  • docker image prune [OPTIONS] //删除所有本地未使用的镜像;
  • docker commit CONTAINER [REPOSITORY[:TAG]] //基于已有镜像的容器创建镜像;
  • docker image build [OPTIONS] PATH | URL | - //基于Dockerfile文件创建镜像;
  • docker save -o 文件名 镜像名:标签名  //把镜像导出到文件中,创建镜像存储文件;
  • docker load -i 文件名  //把镜像存储文件载入到本地镜像库。
2. 容器相关操作命令:容器是镜像的一个运行实例
  • docker run [-ti] 镜像名 [COMMAND] //创建,并启动容器,例如: docker run -ti ubuntu;
  • docker create [-ti] 镜像名 [COMMAND] //创建,不启动,需要用到start启动;
  • docker stop 容器ID    //终止容器,进入Exited状态;
  • docker start 容器ID   //启动容器,回到Up状态;
  • docker restart 容器ID   //重启容器;
  • docker pause 容器ID     //暂停容器,使容器处于暂停Paused状态;
  • docker unpause 容器ID   //恢复容器,使容器恢复运行Up状态;
  • docker attach 容器ID|容器Name  //重新进入处于启动状态的容器;
  • docker exec [-ti] CONTAINER COMMAND  //重新进入处于启动状态的容器,并执行命令;
  • docker ps -a    //查看本机上已有的容器;
  • docker rm 容器ID         //删除本机上处于终止状态的容器;
  • docker container prune [OPTIONS] //删除所有处于停止状态stopped的容器;
  • docker export -o 文件名 容器ID  //把容器导出到文件中,即:创建容器快照;
  • docker import 文件名 - [REPOSITORY[:TAG]] //把容器快照导入,成为镜像;
  • docker inspect 镜像名|容器    //获取镜像或容器的详细信息;
  • docker top CONTAINER  //查看容器中运行的进程信息;
  • docker stats CONTAINER  //查看容器的系统资源使用信息;
  • docker logs [OPTIONS] CONTAINER //查看容器运行日志,OPTIONS:-f持续输出。
3. 其他容器命令
  • docker diff CONTAINER //查看容器内文件系统内容的变化;
  • docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH //拷贝本地文件到指定容器内;
  • docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH //拷贝指定容器内的文件到本地;
  • docker port CONTAINER [PRIVATE_PORT[/PROTO]]  //查看容器的端口映射情况;
  • docker update [OPTIONS] CONTAINER  //更新容器的配置,主要是资源限制配额。
  • docker update -m 500m --memory-swap -1 006a36af5ac3 //修改容器内存、交换内存配置。
注:
1)docker大多数命令都有参数[OPTIONS],可以通过:docker 命令名称 --help查看。
2)如果镜像名后面不带[:标签名],则默认标签名为[:latest],即:镜像的最新版本。
3)通过 -t -i两个参数来给容器分配一个伪终端,并保持标准输入打开。

参考书:《Docker技术入门与实战  第3版》
杨保华 戴王剑 曹亚仑 编著





本文作者:孙长城

本文来源:IT那活儿(上海新炬王翦团队)


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129585.html

相关文章

  • 01-Docker新手入门初见

    摘要:了解开源的容器平台用于分享管理容器的平台使用客户端服务器架构模式。守护进程会处理复杂繁重的任务,例如建立运行发布你的容器。客户端和守护进程之间通过或者进行通信。 Step1:了解Docker 开源的容器平台:Golang https://github.com/docker/dockerDocker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台 -- D...

    oujie 评论0 收藏0
  • Docker安装+HelloWorld+运行Tomcat

    摘要:据我所知,和在安装中都是有区别的。所以,如果你想跟着我一起安装,先明确自己的版本是否是,如果不是只能找其他的教程来进行安装。所以就去拉取了一份镜像,并运行起来了生成容器。 前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 上一篇已经讲解了为什么需要Docker?,相信大家已经对Docke...

    mj 评论0 收藏0
  • Docker安装+HelloWorld+运行Tomcat

    摘要:据我所知,和在安装中都是有区别的。所以,如果你想跟着我一起安装,先明确自己的版本是否是,如果不是只能找其他的教程来进行安装。所以就去拉取了一份镜像,并运行起来了生成容器。 前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 上一篇已经讲解了为什么需要Docker?,相信大家已经对Docke...

    lavnFan 评论0 收藏0
  • Docker镜像细节

    摘要:简单来说是镜像的源码。例如,的镜像镜像,在中是一个基础镜像的镜像也是镜像那么镜像和共享同一个基础镜像层,提高了存储效率。 前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y showImg(https://segmentfault.com/img/remote/14600000180560...

    xiaokai 评论0 收藏0
  • 30 分钟快速入门 Docker 教程

    摘要:分钟快速入门教程一欢迎来到世界与虚拟化在没有的时代,我们会使用硬件虚拟化虚拟机以提供隔离。仓库分为公开仓库和私有仓库,最大的公开仓库是官方仓库,国内的公开仓库也有很多选择,例如阿里云等。 30 分钟快速入门 Docker 教程 一、欢迎来到 Docker 世界 1. Docker 与虚拟化 在没有 Docker 的时代,我们会使用硬件虚拟化(虚拟机)以提供隔离。这里,虚拟机通过在操作系...

    LucasTwilight 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<