Linux-初学者系列_docker

目录

  • Linux-初学者系列_docker
      • 一、概念
      • 二、安装docker(可忽略 跳到第三步)
      • 三、获取镜像
        • 1、下载nginx镜像
        • 2、查看本地镜像
        • 3、将镜像运行成一个容器
          • 01-查看运行的容器
          • 02-通过ip+端口号访问
          • 03-删除端口
          • 04-指定镜像名字
        • 4、dockerfile构建镜像
        • 5、dockersave构建镜像
          • 删除z2
        • 6、docker load

Linux-初学者系列_docker

docker是一个虚拟机,主要应用在Linux和后台一些应用的虚拟机,和常见的VM有很多相似的地方。

一、概念

镜像:

需要下载的系统文件iso…

容器:

正在运行中的一个虚拟机
docker中多了一些tar文件,可以通过指令重新加载成一个镜像。
dockerfile通过写如何构建的步骤,可以将dockerfile构建成镜像。
仓库保存了很多镜像,以及第三方镜像,可以通过docker pull下载镜像/push指令上传。

二、安装docker(可忽略 跳到第三步)

此处我用到的是centos7,使用yum源安装。

可以根据开发者社区Docker CE镜像文档配置。

链接: https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.3e221b11rH6ppU

Linux-初学者系列_docker_第1张图片

以下是根据文档配置过程,可忽略。

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

Linux-初学者系列_docker_第2张图片

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

Linux-初学者系列_docker_第3张图片

sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

sudo yum makecache fast

sudo yum -y install docker-ce

Linux-初学者系列_docker_第4张图片

sudo service docker start

在这里插入图片描述

vim /etc/yum.repos.d/docker-ce.repo

Linux-初学者系列_docker_第5张图片

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

Linux-初学者系列_docker_第6张图片

sudo yum -y install docker-ce-版本号

Linux-初学者系列_docker_第7张图片

docker version

Linux-初学者系列_docker_第8张图片

systemctl status docker

Linux-初学者系列_docker_第9张图片

三、获取镜像

从远程仓库上面pull下载,此处列举nginx

1、下载nginx镜像

[root@bogon ~]# docker pull nginx

Linux-初学者系列_docker_第10张图片

docker pull nginx等于docker pull nginx:latest

不指定版本,默认就是最新版本。

Linux-初学者系列_docker_第11张图片

此时nginx镜像就已经下载下来了。

2、查看本地镜像

docker images

在这里插入图片描述

3、将镜像运行成一个容器

通过run指令将nginx镜像运行成一个正在运行的容器(虚拟机)。

在docker的使用中常用docker run指令跑镜像,比较重要的参数:

-d后台运行

-p映射内外端口,先写外部端口再写内部端口

–name容器运行起来后的名字

-v映射文件

[root@bogon ~]# docker run -d -p 80:80 nginx

在这里插入图片描述

此时d4…这一串是运行的容器id。

01-查看运行的容器
[root@bogon ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES
d42f5d21d47d   nginx     "/docker-entrypoint.…"   2 minutes ago   Up 2 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   pensive_mcclintock

在这里插入图片描述

02-通过ip+端口号访问
我的虚拟机ip地址是:192.168.18.132
端口号是80
浏览器访问:
192.168.18.132:80

我们会发现已经运行起来nginx,说明外部端口映射里面的80,同时也可以启动多个。

Linux-初学者系列_docker_第12张图片

Linux-初学者系列_docker_第13张图片

Linux-初学者系列_docker_第14张图片

总结:通过pull和run将nginx容器运行起来,例如想对nginx进行修改,可以通过docker exec -it 容器id。

[root@bogon ~]# docker exec -it d4 bash
root@d42f5d21d47d:/# 

index文件放在/usr/share/nginx/html中

Linux-初学者系列_docker_第15张图片

直接修改index文件:

root@d42f5d21d47d:/usr/share/nginx/html# echo hello > index.html
root@d42f5d21d47d:/usr/share/nginx/html# cat index.html
hello

80端口会显示:

Linux-初学者系列_docker_第16张图片

退出d4容器

root@d42f5d21d47d:/usr/share/nginx/html# exit
03-删除端口

通过docker rm -f强制删除81端口。

在这里插入图片描述

04-指定镜像名字

通过docker commit指令指定一个镜像的名字,比如说z1。

[root@bogon ~]# docker commit d4 z1
sha256:7b9573603d62f9dcd9c68ec72ff7582d1d563651f8edcf8e69ddb6bb6dd0fe77
[root@bogon ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
z1           latest    7b9573603d62   21 seconds ago   142MB
nginx        latest    a7be6198544f   19 hours ago     142MB
[root@bogon ~]# docker run -d -p 90:80 z1
75e5d60e8a96fc137ea42cef1f07fc66bbc3c32bbfae1fa17370d00cd636ceb5

Linux-初学者系列_docker_第17张图片

通过访问90端口,可以看到页面是hello,说明修改后的容器保存成镜像,重新运行,它可以保持这个变化。

4、dockerfile构建镜像

通过dockerfile,新建一个dockerfile文件。

此时可以学习下dockerfile语法。

Linux-初学者系列_docker_第18张图片

通过FROM指定docker构建的基础镜像,是基于nginx镜像,将当前目录下的所有文件拷贝到/usr/share/nginx/html文件夹下,当前我们创建了一个index.html文件,里面可以写外部的文件。

Linux-初学者系列_docker_第19张图片

通过docker build -t z2 .指定的是当前目录下的dockerfile去构建。

Linux-初学者系列_docker_第20张图片

通过100号端口映射z2

Linux-初学者系列_docker_第21张图片

Linux-初学者系列_docker_第22张图片

5、dockersave构建镜像

使用dockersave讲z2(镜像名)保存到zhang.tar文件里。

[root@bogon ~]# docker save z2 >zhang.tar

Linux-初学者系列_docker_第23张图片

删除z2

因为这个z2有个容器是基于镜像的所以无法删除,需要将这个容器也删除。

Linux-初学者系列_docker_第24张图片

6、docker load

当前z2镜像已经删除,通过docker save

Linux-初学者系列_docker_第25张图片

你可能感兴趣的:(Linux,docker,docker,linux,运维)