【docker学习一】CentOS7.5+Docker安装及使用「安装、查看、pull、创建、进入镜像」
记录安装配置以及使用的过程,可能会有多处摘抄,已注明照抄地址,侵删。
是什么:个人理解,是一种移植性很强的虚拟机,支持版本控制(类似于git),同一个服务器可以运行多个docker容器,每个docker容器都有一个独立的虚拟环境。
本人环境:
虚拟机:Oracle virtualBOX
版本:cetOS7.5 mimi x64
PC系统:macOS X
1、基本概念
摘抄地址:https://yq.aliyun.com/articles/640826?spm=a2c4e.11163080.searchblog.26.4c1d2ec1xDONgS
基本概念主要有三个:
● 镜像(Image)
● 一个只读的模板,镜像可以用来创建 Docker 容器
● 用户基于镜像来运行自己的容器。镜像是基于 Union 文件系统的层式结构
● 可以简单创建或更新现有镜像,或者直接下载使用其他人的。可以理解为生成容器的『源代码』
● 容器(Container)
● 容器是从镜像创建的运行实例,在启动的时候创建一层可写层作为最上层(因为镜像是只读的)
● 可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台
● 可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序
● 仓库(Registry)
● 集中存放镜像文件的场所,可以是公有的,也可以是私有的
● 最大的公开仓库是 Docker Hub
● 国内的公开仓库包括 Docker Pool 等
● 当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了
● Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务
另外 Docker 采用的是客户端/服务器架构,客户端只需要向 Docker 服务器或守护进程发出请求即可完成各类操作。那么问题来了,我们能用 Docker 来做什么呢?我们可以:
● 统一、优化和加速本地开发和构建流程
● 保证不同的环境中可以得到相同的运行结果
● 创建隔离环境用于测试
Docker 可以提供的隔离有:
● 文件系统隔离:每个容器都有自己的 root 文件系统
● 进程隔离:每个容器都运行在自己的进程环境中
● 网络隔离:容器间的虚拟网络接口和 IP 地址都是分开的
● 资源隔离和分组:使用 cgroups 将 CPU 和内存之类的资源独立分配给每个 Docker 容器
tip、centOS7 ip配置
1、查看网卡命令(ifconfig):ip addr
2、编辑配置文件
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
3、开启自动获取ip修改:ONBOOT=yes
4、重启网卡
systemctl restart network
2、安装 vim(可选)
yum install vim
3、开始安装docker
摘抄地址(测试可用):https://www.cnblogs.com/yufeng218/p/8370670.html
1、通过 uname -r 命令查看你当前的内核版本(必须高于3.10)
2、更新yum源:sudo yum update
3、卸载旧版本:sudo yum remove docker docker-common docker-selinux docker-engine
4、依赖包安装:sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、添加yum源:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6、查看版本库: yum list docker-ce --showduplicates | sort -r
7、安装:sudo yum install docker-ce
8、启动并开机启动:
sudo systemctl start docker
sudo systemctl enable docker
9、查看是否安装成功:docker version
4、使用
1、我申请了一个docker账号,平时使用无需申请账号
2、下载一个镜像,或者已有的docker镜像,可以用来创建容器对象。
我安装的是centOS7,执行命令:cat /etc/issue 显示系统为centOS7.5
3、执行完立即关闭容器
执行docker命令:docker run ubuntu echo 'Ubuntu run'
由于本地不存在名为ubuntu的镜像,所以系统自动下载了一个,但是上面的命令指示启动容器后会立即关闭。
4、启动一个容器
a、存在则运行,不存在则下载:docker run -i -t ubuntu /bin/bash
b、手动下载:
[root@localhost mydc]# docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 4722 [OK]
ansible/centos7-ansible Ansible on Centos7 118 [OK]
jdeathe/centos-ssh CentOS-6 6.10 x86_64 / CentOS-7 7.5.1804 x86… 99 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 63 [OK]
[root@localhost mydc]# docker pull centos/mysql-57-centos7
Using default tag: latest
latest: Pulling from centos/mysql-57-centos7
256b176beaff: Pull complete
Digest: sha256:c8a8323721c60a49b1792d31a7892731c741d58c238d77b42f0dcf8d7c32c1b4
Status: Downloaded newer image for centos/mysql-57-centos7:latest
[root@localhost mydc]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos/mysql-57-centos7 latest 34300611d53e 9 days ago 445MB
ubuntu latest cd6d8154f1e1 13 days ago 84.1MB
5、exit 退出容器
6、查看
查看容器:docker ps [-a] [-l]
[root@localhost admin]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b89e931a7a7 ubuntu "/bin/bash" 45 hours ago Exited (0) 45 hours ago stoic_villani
12f34cfcec6d ubuntu "echo run" 45 hours ago Exited (0) 45 hours ago stoic_bose
[root@localhost admin]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b89e931a7a7 ubuntu "/bin/bash" 45 hours ago Exited (0) 45 hours ago stoic_villani
[root@localhost admin]#
查看镜像:
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest cd6d8154f1e1 13 days ago 84.1MB
7、重新启动停止的容器:docker start [-i] 容器名
详细命令:https://blog.csdn.net/bskfnvjtlyzmv867/article/details/81044217
8、查看-进入-启动-退出
[root@localhost admin]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b89e931a7a7 ubuntu "/bin/bash" 46 hours ago Exited (0) 46 hours ago stoic_villani
12f34cfcec6d ubuntu "echo run" 46 hours ago Exited (0) 46 hours ago stoic_bose
[root@localhost admin]# docker start stoic_villani
stoic_villani
[root@localhost admin]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b89e931a7a7 ubuntu "/bin/bash" 46 hours ago Up 16 seconds stoic_villani
12f34cfcec6d ubuntu "echo run" 46 hours ago Exited (0) 46 hours ago stoic_bose
[root@localhost admin]# docker run -t -i stoic_violani /bin/bash
Unable to find image 'stoic_violani:latest' locally
docker: Error response from daemon: pull access denied for stoic_violani, repository does not exist or may require 'docker login'.
See 'docker run --help'.
[root@localhost admin]# docker run -t -i ubuntu /bin/bash
root@b5c0cd216bed:/# pwd
/
root@b5c0cd216bed:/# uname
Linux
root@b5c0cd216bed:/# cat /etc/issue
Ubuntu 18.04.1 LTS \n \l
root@b5c0cd216bed:/# exit
exit
[root@localhost admin]# cat /etc/issue
\S
Kernel \r on an \m
[root@localhost admin]#
9、自定义创建镜像(验证中)
参考地址:https://blog.csdn.net/rznice/article/details/52211620
[root@localhost mydocker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos/mysql-57-centos7 latest 34300611d53e 9 days ago 445MB
ubuntu latest cd6d8154f1e1 13 days ago 84.1MB
#创建目录
[root@localhost admin]# mkdir mydocker
#创建镜像必要的配置文件,内容再下面
[root@localhost admin]# touch Dockerfile
[root@localhost mydocker]# ls
Dockerfile
[root@localhost mydocker]# docker build --help
#docker build -t 新镜像的名字 -f 自定义配置文件的目录(目前在当前目录) 生成后的镜像存储位置
[root@localhost mydocker]# docker build -t ubuntu_mine -f Dockerfile ./
Sending build context to Docker daemon 2.048kB
Successfully built d0ec321b73c6
Successfully tagged ubuntu_mine:latest
#查看自己创建的镜像
[root@localhost mydocker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu_mine latest d0ec321b73c6 About a minute ago 84.1MB
centos/mysql-57-centos7 latest 34300611d53e 9 days ago 445MB
ubuntu latest cd6d8154f1e1 13 days ago 84.1MB
[root@localhost mydocker]#
Dockerfile文件的内容:
#ubuntu 是我本地存在的镜像名称
FROM ubuntu
#添加作者等描述信息
MAINTAINER The CentOS Test Images - test
#构建完成执行的命令
RUN mkdir -p /usr/app
RUN ls
RUN pwd
#构建过程中添加环境变量、安装软件等其他操作。。。
================================================================================
实践:
docker ps
docker exec -it XXXXX(container ID) /bin/bash
【docker学习一】CentOS7.5+Docker安装及使用「安装、查看、pull、创建、进入镜像」的更多相关文章
- Docker学习之Centos7下安装
Docker学习之Centos7下安装 centos7 64下直接使用yum安装docker环境,步骤如下: 卸载旧版本docker sudo yum remove docker docker-com ...
- [转]Docker学习之四:使用docker安装mysql
本文转自:https://blog.csdn.net/qq_19348391/article/details/82998391 Docker学习之一:注册Docker Hub账号 Docker学习之二 ...
- Docker学习(二)docker镜像操作
上一篇:docker学习(一)在centos7上安装docker 列出所有docker镜像 docker images 拉取镜像 docker pull 镜像名 我这里一Tomact为例 首先在Doc ...
- Docker学习(十)Docker容器编排 Docker-compose
Docker学习(十)Docker容器编排 Docker-compose 标签(空格分隔): docker 容器编排是什么 应用一般由单独容器化的组件组成,须按照一定顺序在网络级别进行组织,以使其能够 ...
- Docker学习(三)docker容器操作
上一篇:Docker学习(二)docker镜像操作 容器是基于镜像创建的,说白了把一个镜像运行起来就是容器 查看容器 docker ps 上面什么也没有,因为我们没有正在运行的容器,下面我门启动一个容 ...
- Docker学习(十一)Docker系列结束-新的开始K8S
Docker学习(十一)Docker系列结束-新的开始K8S 标签(空格分隔): docke k8s Docker系列结束 上一篇讲到使用docker官方提供的容器编排工具docker-compose ...
- Docker学习笔记之使用Docker数据卷
Docker数据卷将数据存储到主机而非容器,多个容器需要共享数据时,常常使用数据卷. 1. 为容器设置数据卷(不指定主机目录) 2. 容器与主机之间.容器与容器之间共享数据卷(指定主机目录) 3. 使 ...
- <Docker学习>2.Centos7安装docker
Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10. CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无 ...
- Docker学习笔记-CentOS7镜像
前言: 环境:centos7.5 64 位 正文: 第一步:下载centos7镜像 docker pull centos 第二步:建立centos7的容器 sudo docker run --priv ...
随机推荐
- 双显卡安装Fedora 20
电脑CPU上有核芯显卡,独立显卡是Nvidia的GeForce.在安装Fedora 20 64位的时候,通常会有一个优先级.在电脑BIOS中有一个显卡的启动选项,PCIe或者IGFX,PCIe是独立显 ...
- Leetcode 169 Majority Element 分治
在一个长度为n的数组中找出出现次数超过(n+1)/2次的数 说明请参考编程之美中的2.3 class Solution { public: int majorityElement(vector< ...
- python 教程 第二章、 类型
第二章. 类型 常量 5,1.23,9.25e-3,’This is a string’,”It’s a string!” 1) 数 整数:2 长整数: 浮点数:3.23,52.3E-4 复数:-5+ ...
- WPF 实现拖动工具箱效果
原文:WPF 实现拖动工具箱效果 1.效果 点击左边的矩形拖动到右边canvas面板,右边面板添加矩形 2.布局 左边是个StockPanel,上面有个矩形,右边是个Canvas面板. 矩形是源,Ca ...
- WebService它Soap头验证进入
1.创建一个新的类.如"AuthHeaderUser",在传承"System.Web.Services.Protocols.SoapHeader"类别 2.新W ...
- 【Java】使用记事本运行第一个Java程序
要编写java程序,java sdk必不可少,mac OS系统自带sdk,如果觉得版本太低,可以去官网下载最新的. 打开终端,新建一个HelloWorld.java文件: vim HelloWorld ...
- .Net 开源服务 and Net站点
小泥鳅博客系统也是一个.NET平台的开源免费博客系统,创建于2008年夏天,基于.Net平台开发,拥有完整的文章发布,评论,订阅,标签等功能,满足个人/团队信息发布需求,可作为Blog,CMS,甚至建 ...
- 获取bing图片并自动设置为电脑桌面背景(使用 URLDownloadToFile API函数)
众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...
- Win8Metro(C#)数字图像处理--2.18图像平移变换
原文:Win8Metro(C#)数字图像处理--2.18图像平移变换 [函数名称] 图像平移变换函数TranslationProcess(WriteableBitmap src,int x,in ...
- 【必须知道】Enum_Flags
[Flags] enum AnyThings{ A=1, B=2, C=4, D=8 } 枚举赋值必须是2^n才可以,目的是实现他们的二进制表示中的 1 ,不要重叠,如 1=0001 2=0010 ...