Docker容器从一知半解到入门

Docker是一个开源的、跨平台的应用容器引擎,可以让技术开发认用打包他们的应用以及一些依赖包到一个可移植的容器平台中,发布到任何流行的Linux操作系统上面,也可以在Windows和mac操作系统上面跑,容器是完全使用沙箱机制,容器相互之间不会存在任何接口。docker应用广泛、安全性好、运行快、节约资源、移植性好、自动化部署快等有点。

下面我们来看一张docker镜像基本原处理图:

我们在学习Docker镜像的时候,使用系统默认的yum源安装会非常慢,很有可能会安装失败,因为docker服务器在国外,访问速度非常慢,访问网络也不稳定,而且国外的docker hub官网拉取镜像也太慢了,我们可以直接修改用国内的阿里的容器Hub服务 https://cr.console.aliyun.com的控制台,这里需要登录阿里账号或者支付宝账号,也可以使用腾讯云、百度云、华为云、ucloud、网易云等都有docker镜像hub,我这里使用的阿里云镜像服务;在学习docker容器的前提下还是要对Linux要有点基础,这样学起来就容易上手,如果完全不懂Linux,还是建议你去学习下《Linux就该这么学》这边教程里面的内容非常详细,比较适合初学者。此文章比较适合于企业应用。

1、Centos 7 install docker-ce

安装指定版本的Docker-CE:

# Step 1: 查找Docker-CE的版本:

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

* updates: mirrors.aliyun.com

Loading mirror speeds from cached hostfile

Loaded plugins: fastestmirror

Installed Packages

* extras: mirrors.aliyun.com

* epel: mirrors.ustc.edu.cn

docker-ce.x86_64            3:18.09.0-3.el7                      docker-ce-stable

docker-ce.x86_64            3:18.09.0-3.el7                       @docker-ce-stable

docker-ce.x86_64            18.06.1.ce-3.el7                 docker-ce-stable

docker-ce.x86_64            18.06.0.ce-3.el7                    docker-ce-stable

docker-ce.x86_64            18.03.1.ce-1.el7.centos            docker-ce-stable

docker-ce.x86_64            18.03.0.ce-1.el7.centos            docker-ce-stable

docker-ce.x86_64            17.12.1.ce-1.el7.centos            docker-ce-stable

docker-ce.x86_64            17.12.0.ce-1.el7.centos            docker-ce-stable

docker-ce.x86_64            17.09.1.ce-1.el7.centos            docker-ce-stable

docker-ce.x86_64            17.09.0.ce-1.el7.centos            docker-ce-stable

docker-ce.x86_64            17.06.2.ce-1.el7.centos            docker-ce-stable

docker-ce.x86_64            17.06.1.ce-1.el7.centos            docker-ce-stable

docker-ce.x86_64            17.06.0.ce-1.el7.centos            docker-ce-stable

docker-ce.x86_64            17.03.3.ce-1.el7                    docker-ce-stable

docker-ce.x86_64            17.03.2.ce-1.el7.centos            docker-ce-stable

docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable

docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable

* base: mirrors.cqu.edu.cn

Available Packages

# Step2: 安装指定版本的Docker-CE

# sudo yum -y install docker-ce-[VERSION]

安装最新版本的Docker-CE:

# step 1: 安装必要的一些系统工具

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

# Step 2: 添加软件源信息

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

# Step 3: 更新并安装Docker-CE

yum makecache fast

yum -y install docker-ce

# Step 4: 开启Docker服务

systemctl start docker.service

Step 5: 查看Docker安装版本

docker --version

Docker version 18.09.0, build 4d60db4

2、docker安装目录结构

3、启动和停止镜像

3.1、启动容器

自定义镜像名:便于区分

-d 后台运行

指定主机启动的名称

[[email protected] ~]# docker run -itd -h hostname 镜像

举例:

[[email protected] ~]# docker run -itd docker.io/ubuntu /bin/bash

[email protected]:/#

3.2、停止/退出,docker退出容器,并且关闭容器

exit

docker退出容器,而不关闭容器:

ctrl+p    ctrl+q   //这里2个步骤

ctrl+p+q

3.3、docker 给运行的容器映射本地端口

[[email protected] ~]# docker run -itd -p 0.0.0.0:80:80 --name apache docker.io/ubuntu /bin/bash

4、docker常用命令及解释如下

docker search nginx   //搜索镜像库

docker pull nginx   //选择合适的镜像并拉取镜像

docker images nginx   //在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像

docker images httpd   //在本地镜像列表里查到 REPOSITORY 为apache的镜像

docker info    //查看docker信息

docker version    //查看docker版本

docker pull 镜像名称   //下载(拉)镜像

docker push 镜像名称   //上传镜像

docker load -i 镜像名称.tar  //导入镜像

docker images    //查看所有已经安装的镜像列表

docker attach 镜像名/镜像ID  //进入镜像里面

docker exec 镜像名/镜像ID ls /home //在执行shell命令到容器里面

举例:a.txt b.txt是我开始创建的2个文本文件

[[email protected] ~]# docker exec elegant_bhaskara ls /home

a.txt

b.txt

[[email protected] ~]# docker stop 镜像名/镜像ID //停止镜像

[[email protected] ~]# docker tag 原镜像名 新镜像名  //生成新的images

举例:docker tag docker.io/ubuntu ubuntu:laste

[[email protected] ~]#  docker run -it test:ubuntu /bin/bash

[[email protected] ~]#  docker commit hopeful_carson(NAMES) ubuntu(REPOSITORY):self(tag)  //提交镜像,生成新的镜像,镜像里面的配置也保留了,便于多个版本的管理

[[email protected] ~]# docker run -itd --name test01_self ubuntu:self  用提交的镜像再启动新的镜像

0f280fd95659c81fcff4069bb53ff53b07d06b28de05111dd5a9177e16865f22

[[email protected] ~]# docker exec test01_self ls /home

5、提交运行中的容器为一个镜像   (这样不会丢失在容器的各种操作)

[[email protected] ~]# docker commit clever_haibt clever_haibt_new

###   clever_haibt(运行容器名称)    clever_haibt_new(生成镜像名称)

6、运行镜像并添加端口

[[email protected] ~]# docker run -d -it -p 80:80 clever_haibt_new:latest /bin/bash

###  小p是自定义端口    latest 是镜像的标签(最好写上专业点)

举例apache:httpd:latest

# docker run -d -it -p 80:80 httpd:latest

测试:http://ip

7、列出运行的镜像

[[email protected] ~]# docker ps //查看已运行的容器状态

查看镜像、容器、数据卷所占用的空间

[[email protected] ~]# docker system df

8、Docker本身提供了两种终止容器运行的方式,查看帮助

[[email protected] ~]# docker stop --help

举例:docker stop NAMES

docker kill --help

9、linux下解决docker端口映射到宿主机后外网无法访问的问题?

解决办法:

[[email protected] ~]# vim /etc/sysctl.conf

或者

[[email protected] ~]# vim /usr/lib/sysctl.d/00-system.conf

添加如下代码:

net.ipv4.ip_forward=1

重启network服务

# systemctl restart network

查看是否修改成功

# sysctl net.ipv4.ip_forward

如果返回为“net.ipv4.ip_forward = 1”

则表示成功了

10、删除镜像

先停止镜像--再执行删除操作

[[email protected] ~]# docker rm 镜像名称/容器ID

[[email protected] ~]# docker rm -f 镜像名称/容器ID  //强制删除镜像

11、导出镜像,生成tar包,export导出的是读写层的文件系统

[[email protected] ~]# docker export 镜像名/镜像ID > XXXX.tar

举例:

[[email protected] ~]# docker export test01_self > test01.tar

导出完整镜像:save:导出镜像所有文件和历史纪录

[ro[email protected] ~]# docker save docker.io/imagine10255/centos6-lnmp-php56 > lnmp.tar

12、导入镜像

[[email protected] ~]# docker import test01.tar(镜像包) ubuntu:self_new(新的镜像名)

13、启动导入的镜像

[[email protected] ~]# docker run -itd --name ubuntu_self_new ubuntu:self_new /bin/bash

打包前创建的文件存在

导入完整镜像: load

[[email protected] ~]# docker rmi docker.io/imagine10255/centos6-lnmp-php56  //删除

[[email protected] ~]# docker load -i lnmp.tar  //重新导入

原文地址:https://www.cnblogs.com/LILi666/p/10151688.html

时间: 2024-07-28 22:43:31

Docker容器从一知半解到入门的相关文章

在线培训 | Docker容器部署与管理入门

容器技术凭借其轻量化和快速部署的特性,被越来越多企业开发者赞誉,近两年来发展态势可谓炙手可热. 去年一年,Kubernetes的流行度持续快速上升,我们有理由相信在不远的未来,Kubernetes将成为通用的基础设施标准. 开源的全栈化企业级容器管理平台Rancher,凭借优异的基础设施服务管理能力和强大的容器协调能力,让用户在生产环境中的容器部署.运行与管理工作变得更加简单.加上Rancher创造性的纳管来自不同基础架构的Kubernetes集群的能力,为企业在生产环境落地Docker与Kub

Docker容器部署与管理入门培训,你需要的前期准备都在这里!

容器技术凭借其轻量化和快速部署的特性,被越来越多企业开发者赞誉,近两年来发展态势可谓炙手可热. 去年一年,Kubernetes的流行度持续快速上升,我们有理由相信在不远的未来,Kubernetes将成为通用的基础设施标准. 开源的全栈化企业级容器管理平台Rancher,凭借优异的基础设施服务管理能力和强大的容器协调能力,让用户在生产环境中的容器部署.运行与管理工作变得更加简单.加上Rancher创造性的纳管来自不同基础架构的Kubernetes集群的能力,为企业在生产环境落地Docker与Kub

要入门URLOS应用开发 首先要了解docker容器的使用方法

URLOS本是基于docker容器运行,在入门URLOS开发之前,我们首先需要掌握docker的相关基础知识,本篇就以docker容器的基本使用方法为例,快速的让大家对docker有一个全面的印象. Docker简介 Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. 容器是完全使用沙箱机制,相互之间不会有任何接口(类似

docker容器从入门到实战0826

##docker容器安装和配置### #docker的git-hub网站(账号rshare,密rshare520):https://github.com/login #docker官网hub仓库(账号flyer520,密码rhsare520):https://hub.docker.com #docker官网文档和镜像:https://docs.docker.com/samples/centos/ #docker官网的容器网络配置:https://docs.docker.com/engine/us

docker容器从入门到实战0826(笔记整理)

##docker容器安装和配置### #docker的git-hub网站(账号rshare,密rshare520):https://github.com/login #docker官网hub仓库(账号flyer520,密码rhsare520):https://hub.docker.com #docker官网文档和镜像:https://docs.docker.com/samples/centos/ #docker官网的容器网络配置:https://docs.docker.com/engine/us

云计算学习路线图课件:学Docker容器怎样快速入门?

"云计算"作为未来网络甚至未来计算机行业的发展趋势,得到了广泛重视.越来越多的人想通过学习云计算收获高薪,学习云计算的过程中会接触到Docker容器,这究竟是为什么?如何快速高效的学好Docker容器.进而学好云计算呢? docker就像一个集装箱一样,里面放着自己所需要的应用程序.docker内部使用的是Linux容器技术,并且提供一个完整的文件系统,独立的网络环境. docker 和vm虚拟机的主要区别在于,vm虚拟机启动之前需要制定好资源,例如CPU,内存,硬盘等,这会占用了一些

Docker入门实战-SSH连接docker容器

简介 什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护. Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc.Redhat 已经在其 RHEL6.5 中集中支持 Docker:Google 也在其 PaaS

docker容器从入门到精通

第1章 docker容器 1.1 什么是容器? 容器就是在隔离的环境运行的一个进程,如果进程停止,容器就会销毁.隔离的环境拥有自己的系统文件,ip地址,主机名等 1.2 容器和KVM虚拟化的区别 kvm虚拟化: 需要硬件的支持,需要模拟硬件,可以运行不同的操作系统,启动时间分钟级(开机启动流程) linux开机启动流程: bios开机硬件自检 根据bios设置的优先启动项 网卡 硬盘 u盘 光驱 读取mbr引导 UEFI(gpt分区) mbr硬盘分区信息,内核加载路径 加载内核 启动第一个进程i

kubernetes入门教程——docker容器

一.容器 什么是容器 为什么使用容器 生命周期 容器与虚拟机的对比 容器的操作 二.镜像 什么是镜像 镜像的分层存储 镜像的来源 三.镜像仓库 官方仓库 私有仓库 Pull 镜像 Push 镜像 Tag 镜像 四.docker容器的相关命令 原文地址:https://www.cnblogs.com/lilinwei340/p/12605481.html