Docker入门篇

原题目:Docker进门篇

Docker简介

Docker是一个开源的利用容器引擎,闪开发者可以打包他们的利用以及依靠包到一个可移植的镜像中,然后宣布到任何风行的 Linux或Windows 机械上,也可以实现虚拟化。容器是完整应用沙箱机制,彼此之间不会有任何接口

Docker上风

连续集成、版本把持、可移植性、隔离性和平安

Docker的构成

镜像(image):

Docker镜像就相当于是一个文件体系,通俗来说就是为容器用来创立容器的

容器(Container):

Docker 应用容器 (Container) 自力运行的一个或一组利用,容器是用镜像创立的运行实例,它可以被启动、开端、结束、删除,每个容器都是彼此隔离的、包管平安的平台,可以把容器看做是一个简略单纯版的Linux体系

容器就相当于Java中的对象,镜像相当于Java中的类

仓库(Repository)

仓库是集中寄存镜像文件的场合 仓库注册办事器 (Registry) 上往往寄存着多个仓库,每个仓库中又包括了多个镜像,每个镜像有分歧的标签 仓库分为公然仓库和私有仓库两种情势 最年夜的公然仓库是DockerHub寄存了数目宏大的镜像供用户下载,国内的公然仓库包含阿里云等

Docker的底层道理

Docker的工作道理

Docker是基于C/S构造的体系,Docker的守护过程运行在Linux办事器(宿主机)上,当我们在Liunx办事器上(Docker-Client)输进Docker相干号令就会被发送给Doker-Server

为什么Docker比VM(虚拟机)快

1、Docker有着比虚拟机更少的抽象层,因为Docker不须要Hypervisor实现硬件资本虚拟化,运行在Docker容器上的法式直接应用的都是现实物理机的硬件资本,是以在CPU、内存应用率上docker将会在效力上有显明上风 2、当新建一个容器时,Docker不须要和虚拟机一样从头加载一个操纵体系内核,因而避免领导、加载操纵体系内核返个比拟费时费资本的进程,当新建一个虚拟机时,虚拟机软件须要加载GuestOS(虚拟机中的操纵体系),这个新建进程是分钟级此外,而Docker因为直接应用宿主机的操纵体系,则省略了这个庞杂的进程,是以新建一个Docker容器只须要几秒钟

睁开全文

Docker的安装

1.须要Liunx版本为CentOS7.0以上

2.卸载旧版本(非必需项)

yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

3.安装Docker所须要依靠

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

4.设置镜像仓库

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

5.安装Docker

yum -y install docker-ce

6.设置阿里云镜像加快

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-‘EOF’

{

“registry-mirrors”: [“https://qhyb8ixp.mirror.aliyuncs.com”]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

7.开启Dcoker办事

service docker start

8.测试Docker-HelloWorld法式

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

Unable to find image ‘hello-world:latest’ locally

docker run hello-worldlatest: Pulling from library/hello-world

0e03bdcc26d7: Already exists

Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1

Status: Downloaded newer image for hello-world:latest

Hello from Docker! –> 呈现这句话代表Docker安装没有题目

This message shows that your installation appears to be working correctly.

9.卸载Docker

#1. 卸载依靠

yum remove docker-ce docker-ce-cli containerd.io

#2. 删除资本 /var/lib/docker 是docker的默认工作路径!

rm -rf /var/lib/docker

Docker辅助号令

1. docker version # 显示Docker的版本信息

2. docker info # 显示Docker的体系信息(包括镜像与容器的数目)

3. docker 号令 –help # 查看辅助(就是显示这个号令有什么可选项)

Docker镜像号令

Docker容器号令

容器后台方法运行

[root@MT ~]# docker run -d centos

748d11ff226983ab8281fc6741087e6a3f349ad03f0cadafcd215aed894978dc

[root@MT ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

# 题目:我们此时已经发明启动CentOS,可是确查不到正在运行的容器

# 说明:Docker容器应用后台运行,就必需要有要一个前台过程,Docker发明没有利用,就会主动结束

查看日记

docker logs -tf 容器id # 查看及时日记

docker logs -t –tail 数目 容器id # 查看指定命量的日记

查看容器中的过程信息

docker top 容器id

查看镜像的元数据

docker inspect 容器id

进进当前正在运行的容器

# 凡是我们是应用后台方法运行容器,由于我们可能须要进进容器,修正设置装备摆设

# docker exec -it 容器ID /bin/bash (常用)

# docker attach 容器ID

# exec方法:就是相似新开一个窗口衔接运行的容器

# attach方法:就是直接连进当前的容器

拷贝容器内文件到宿主机中

docker cp 容器id:文件路径(容器内) 目标路径(宿主机)

[root@MT ~]docker cp 1a9a6785c37c:/home/c.java /home/

Docker安装Nginx

# 1. 搜刮镜像 search 建议大师往docker搜刮,可以看到辅助文档

docker search nginx

# 2. 拉取镜像 docker pull nginx

docker pull nginx

# 3. 运行测试

# -d 后台运行

# –name 给容器定名

# -p 宿主机端口:容器内部端口(我这里应用阿里云的3344端口,条件要在阿里云平安组开放次端口)

docker run -d –name nginx -p 3344:80 nginx

# 4.查看镜像

docker ps

# 5.测试是否胜利

curl localhost:3344 # 或者在阅读器输进ip:3344

Docker安装Tomca

# 下载tomcat镜像

docker pull tomcat:9.0

# 运行tomcat镜像

docker run -d tomcat -p 3344:8080 tomcat

# 测试

curl localhost:3344 # 此时发明无法拜访

# 原因:tomcat容器里面webapps目次下没有文件

# 进进容器

docker exec -it ef41045bea2b /bin/bash

cp -r webapps.dist/* webapps

# 从头测试 在阅读器输进ip:3344 –> 发明胜利拜访

本文为阿里云原创内容,未经答应不得转载

义务编纂:

发表评论

电子邮件地址不会被公开。 必填项已用*标注