Centos 7 安装操作最新版docker-ce

使用非Root用户前要增加sudo 命令

卸载旧版本Docker

旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

使用yum 安装docker依赖包

执行以下命令安装依赖包:
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2

配置国内镜像站

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
执行下面的命令添加 yum 软件源:
阿里云:
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
163:
yum-config-manager \
--add-repo \
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

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

安装Docker CE或者指定版本安装

如果需要最新版本的 Docker CE 请使用以下命令:
sudo yum-config-manager --enable docker-ce-edge
sudo yum-config-manager --enable docker-ce-test

更新 yum 软件源缓存,并安装 docker-ce。
yum makecache fast
yum install docker-ce

安装指定版本的Docker:
yum list docker-ce --showduplicates | sort -r

yum install docker-ce-18.06.3.ce-3.el7.centos.x86_64

注:安装过程中的问题:


解决方法:
下载container-selinux:
wget http://mirrors.atosworldline.com/public/centos/7/extras/x86_64/Packages/container-selinux-2.68-1.el7.noarch.rpm
安装container-selinux(使用–nodeps --force跳过依赖检查):
rpm -ivh container-selinux-2.68-1.el7.noarch.rpm --nodeps --force
然后重新安装Docker

启动Docker CE

systemctl enable docker
systemctl start docker

建立Docker用户组

默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

建立 docker 组:
groupadd docker
将当前用户加入 docker 组:
usermod -aG docker $USER
退出当前终端并重新登录,进行如下测试。

测试docker是否正确安装

docker run hello-world

Unable to find image ‘hello-world:latest‘ locally
latest: Pulling from library/hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
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.
    (amd64)
  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://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

镜像加速

如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker 国内镜像加速。
添加内核参数
如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
请添加内核配置参数以启用这些功能。
tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
然后重新加载 sysctl.conf 即可
sysctl -p

导入导出命令介绍

涉及的命令有export、import、save、load
Save 命令 :
docker save [options] images [images...]
示例 :
docker save -o nginx.tar nginx:latest

docker save > nginx.tar nginx:latest
其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)
Load 命令 :
docker load [options]
示例
docker load -i nginx.tar

docker load < nginx.tar
其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
Export 命令 :
docker export [options] container
示例
docker export -o nginx-test.tar nginx-test
其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)
import命令:
docker import [options] file|URL|- [REPOSITORY[:TAG]]
示例
docker import nginx-test.tar nginx:imp

cat nginx-test.tar | docker import - nginx:imp
区别
export命令导出的tar文件略小于save命令导出的

export命令是从容器(container)中导出tar文件,而save命令则是从镜像(images)中导出
基于第二点,export导出的文件再import回去时,无法保留镜像所有历史(即每一层layer信息,不熟悉的可以去看Dockerfile),不能进行回滚操作;而save是依据镜像来的,所以导入时可以完整保留下每一层layer信息。如下图所示,nginx:latest是save导出load导入的,nginx:imp是export导出import导入的。
建议:
可以依据具体使用场景来选择命令
若是只想备份images,使用save、load即可
若是在启动容器后,容器内容有变化,需要备份,则使用export、import

Docker中如何删除image(镜像)

docker中删除images的命令是docker rmi,但有时候执行此命令并不能删除images;(确认删除竟像时镜像没有在容器中运行,为停止状态)

docker images 查看镜像

docker rmi IMAGE ID

docker images 重新查看镜像列表

发现image并没有被删除,只是他的tag被删除了,再次执行docker rmi IMAGE_ID只会报错
docker rmi 53912975086f
Error: image_delete: Conflict, 53912975086f wasn‘t deleted
2019/07/20 16:16:27 Error: failed to remove one or more images

查看docker的帮助会发现有两个与删除有关的命令rm和rmi
rm Remove one or more containers
rmi Remove one or more images

这里有两个不同的单词,images和container。其中images很好理解,跟平常使用的虚拟机的镜像一个意思,相当于一个模版,而container则是images运行时的的状态。docker对于运行过的image都保留一个状态(container),可以使用命令docker ps来查看正在运行的container,对于已经退出的container,则可以使用docker ps -a来查看。 如果你退出了一个container而忘记保存其中的数据,你可以使用docker ps -a来找到对应的运行过的container使用docker commit命令将其保存为image然后运行。
回到之前的问题,由于image被某个container引用(拿来运行),如果不将这个引用的container销毁(删除),那image肯定是不能被删除。
所以想要删除运行过的images必须首先删除它的container。继续来看刚才的例子,
执行命令 docker ps -a

可以看出53912975086f的image被cc6b344ed27f的container使用着,所以必须首先删除该container
docker rm cc6b344ed27f
Error: container_delete: Impossible to remove a running container, please stop it first
2019/07/20 16:36:44 Error: failed to remove one or more containers
现错误,这是因为该container正在运行中(运行docker ps查看),先将其关闭
docker stop cc6b344ed27f

docker rm cc6b344ed27f

docker rmi 53912975086f

docker images


可以看出,image已经被删除。

原文地址:https://blog.51cto.com/1345992/2421943

时间: 2024-11-10 20:29:13

Centos 7 安装操作最新版docker-ce的相关文章

CentOS 下安装操作Memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. 最近学习Memcached:通过我的亲身进来,带大家安装Memcached,以及演示使用php扩展memcached进行简单操作: 1.获取Me

centos 安装最新稳定版本docker

直接yum安装的docker版本是 : docker --versionDocker version 1.12.6, build 85d7426/1.12.6 一些新特性需要安装最新的稳定版本 国内可以用镜像加速,可以参考我的另外一篇blog http://www.cnblogs.com/zhishuai/p/8013137.html 以下流程主要整理自docker中国官方站,简单梳理下流程 https://docs.docker-cn.com/engine/installation/linux

在Ubuntu14.04下安装Docker CE(1) - repository篇

从2017年3月开始,Docker开始分为社区版本和企业版,也就是Docker CE和Docker EE, 原来Ubuntu14.04下,通过sudo apt-get install docker.io来进行安装的方式已经过时了.在这里,会详细介绍如何在ubuntu14.04 LTS下安装Docker社区版,也就是Docker CE. 在开始之前,请确保你先做好一些前期准备工作,然后开始安装Docker. 前期准备工作 操作系统 安装Docker CE,你需要以下其中一种64位的Ubuntu操作

docker CE 的安装

一.Docker CE的安装1.先决条件运行环境:Ubuntu 64位或者其他支持Docker的64位系统运行配置,linux内核版本必须大于 3.10,否则会因为缺少容器运行所需的功能而出错. 2.在ubuntu下安装Docker CEUbuntu版本? Cosmic 18.10 ? Bionic 18.04 (LTS) ? Xenial 16.04 (LTS) 建议16.04或以上,本文以Ubuntu16.04 64位 root用户为例卸载旧版本的docker 旧版本的docke被称为doc

安装centos docker ce

安装centos docker ce 移除旧的版本: $ 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 安装一些必要的系统工具: sudo yum install -y yum-utils

CentOS安装docker ce的三种方式

参考文章: CentOS安装docker ce的三种方式: 1.环境 CentOS Linux release 7.6.1810 (Core) 2.卸载旧版本 sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker

CentOS 7 安装Docker CE

本节内容: 背景 Moby项目 安装Docker CE 卸载Docker CE 一.背景 在搭建Registry的过程中,发现使用Docker 1.12版本,在push镜像到Registry时会报错误,几经查询解决之道无果后,去github的docker项目上提问,得到的回答是"Also note you appear running an unsupported version of docker which has changes specifically around how regist

安装docker CE for CentOS

Uninstall old versions sudo yum remove docker \                 docker-client \                 docker-client-latest \                 docker-common \                 docker-latest \                 docker-latest-logrotate \                 docker-lo

(一) CentOS 7 进行 Docker CE 安装

参考并感谢 官方文档: https://docs.docker.com/install/linux/docker-ce/centos/ 卸载旧版本 # 停止所有正在运行的容器 docker stop `docker ps -a -q` # 删除所有容器(容器运行中则无法删除) docker rm `docker ps -a -q` # 删除所有镜像(镜像使用中则无法删除) docker rmi -f `docker images -a -q` yum remove docker docker-c