Docker 入门学习笔记

引用:http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
(从程序运行的环境配置这个难题出发,分别介绍了使用虚拟机和使用容器的优劣,然后引出了docker。)

Docker,一个开源的应用容器引擎。将应用程序和该程序的依赖打包在一个文件里。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就像运行在真实的物理机上一样。有了docker,就不用担心环境问题。

Docker的用途
  1. 提供一次性的环境,比如测试他人的软件
  2. 提供弹性的云服务,可以非常方便的进行动态缩扩容。
  3. 组件微服务架构。
Centos下安装docker

Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。企业版包含了一些收费服务,个人开发者一般用不到。下面的介绍都针对社区版。

参考:https://www.runoob.com/docker/centos-docker-install.html
方法其一:Install using the repository
1.查看已安装的docker程序
rpm -qa | grep docker
2.卸载
yum remove docker-common-1.13.1-161.git64e9980.el7_8.x86_64 docker-client-1.13.1-161.git64e9980.el7_8.x86_64 -y
3.清空docker目录
rm -rf /var/lib/docker/
4.安装所需软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
5.设置仓库(阿里源)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

这里有报错:except yum.Errors.RepoError, e:,原因是我升级过python,yum-config-manager应该使用的是python2,处理办法:
vim /usr/bin/yum-config-manager
改成 #!/usr/bin/python2 -tt ,这里原来是#!/usr/bin/python -tt
[root@dewan01 ~]# ll /usr/bin/python2
lrwxrwxrwx 1 root root 9 May 8 13:49 /usr/bin/python2 -> python2.7

6.安装 Docker Engine-Community
yum install docker-ce docker-ce-cli containerd.io -y
7.启动
systemctl start docker
8.查看版本
docker version

Docker文件目录
[root@dewan01 ~]# cd /var/lib/docker/
Mon Jun 15 13:18:00 CST 2020
[root@dewan01 docker]# ll
total 36
drwx------ 4 root root 4096 Jun 12 18:16 containers
drwx------ 3 root root 4096 Jun 12 18:08 image
drwxr-x--- 3 root root 4096 Jun 12 18:08 network
drwx------ 8 root root 4096 Jun 12 18:16 overlay2
drwx------ 4 root root 4096 Jun 12 18:08 plugins
drwx------ 2 root root 4096 Jun 12 18:08 swarm
drwx------ 2 root root 4096 Jun 12 18:15 tmp
drwx------ 2 root root 4096 Jun 12 18:08 trust
drwx------ 2 root root 4096 Jun 12 18:08 volumes
查看docker用户和组
cat /etc/group
cat /etc/passwd
image文件

Docker把应用程序及其依赖,打包在image文件里面。
只有通过这个文件,才能生成docker容器。

image文件可以看作是容器的模板,Docker根据image文件生成容器实例。同一个image文件,可以生成多个同时运行的实例。

image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。

# 列出本机的所有 image 文件。
$ docker image ls

# 删除 image 文件
$ docker image rm [imageName]

image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件,而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不是从零开始制作。

为了方便共享,image 文件制作完成后,可以上传到网上的仓库。Docker 的官方仓库 Docker Hub 是最重要、最常用的 image 仓库。此外,出售自己制作的 image 文件也是可以的。

实例:hello-world

通过最简单的image文件“hello-world”,认识一个docker。

[root@dewan01 ~]# docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

输出这段提示以后,hello world就会停止运行,容器自动终止。

有些容器不会自动终止,因为提供的是服务。比如,安装运行 Ubuntu 的 image,就可以在命令行体验 Ubuntu 系统。

[root@dewan01 ~]# docker run -it ubuntu bash
root@6c16b5775be9:/#

[root@dewan01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED                                                                                           STATUS              PORTS               NAMES
0eb8e15a2434        ubuntu              "bash"              21 minutes ago 

对于那些不会自动终止的容器,必须使用docker container kill命令手动终止。

[root@dewan01 ~]# docker kill 0eb8e15a2434
0eb8e15a2434
容器文件

image 文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。

# 列出本机正在运行的容器
$ docker ps

# 列出本机所有容器,包括终止运行的容器
$ docker ps -a
Docker Dockerfile

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

实例:制作自己的 Docker 容器

(略)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值