docker安装及使用

1.简介

docker是内核虚拟化,直接运行在系统层面,提高系统资源利用率

docker遵守不可变技术

1.1 docker组成

docker基于硬件和网络,操作系统后,是docker服务,而虚拟化是虚拟操作系统
docker有较高的隔离性,但是相比虚拟化,不彻底隔离,虚拟化彻底隔离(docker甚至有一些部分不隔离,如用户空间)
虚拟化部署复杂,管理完整但是复杂,操作复杂.docker部署简单,操作简单,管理为单进程(前台启动服务,前台挂了,服务也挂了)管理方便简单
docker轻量级服务.一个镜像mb级别 .而虚拟化GB级别

docker是隔离进程,而虚拟化技术是隔离操作系统

1.2 docker改变了什么

简化了配置服务
代码流水线管理
快速部署
面向产品: 产品交付(更快速的交付)
面向开发: 简单化配置(更快速使用环境)
面向测试: 多版本测试
面向运维: 环境一致性

面向架构: 自动扩容(微服务)

2.docker安装

2.1环境准备

[root@lb02 ~]# cat /etc/redhat-release   
CentOS Linux release 7.5.1804 (Core)   
[root@lb02 ~]# uname -r  
3.10.0-862.3.2.el7.x86_64 

2.2 安装及应用

2.2.1 安装

环境准备

[root@kubernetes ~]# cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)

更新yum源

yum update

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

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

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

yum install  docker-ce-18.09.7-3.el7

启动

 systemctl start docker
 docker -v 

3.daocker

3.1镜像

3.1.1查看镜像

[root@docker ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

3.1.2查询镜像

[root@docker ~]# docker search centos  

3.1.3获取镜像

[root@docker ~]# docker pull centos  

3.1.4删除镜像启动镜像后无法删除)

[root@docker ~]# docker images  
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE  
docker.io/centos    latest              d123f4e55e12        6 days ago          196.6 MB  
[root@docker ~]# docker rmi  d123f4e55e12  

3.1.5 启动镜像

(格式:docker命令 选项参数 镜像名 执行命令)

( -t  伪终端 -i  开放输入)

[root@docker ~]# docker run --name mydocker -t -i centos /bin/bash  
[root@2374fe85e0f0 /]#   

4.docker基础操作

4.1 退出重新启动

[root@docker ~]# docker ps -a  
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES  
2374fe85e0f0        centos              "/bin/bash"         3 hours ago         Exited (0) 2 hours ago                       mydocker  
[root@docker ~]# docker start mydocker   
mydocker  
[root@docker ~]# docker ps -a  
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES  
2374fe85e0f0        centos              "/bin/bash"         3 hours ago         Up 7 seconds                            mydocker  

4.2进入容器方法

4.2.1最佳

[root@docker ~]# docker ps -a  
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES  
2374fe85e0f0        centos              "/bin/bash"         3 hours ago         Up 13 seconds                           mydocker  
[root@docker ~]# docker inspect -f "{{ .State.Pid  }}" mydocker  
14266  
[root@docker ~]# nsenter  -t 14266 -m -u -i -n -p  
[root@2374fe85e0f0 /]# exit  
exit  
  
[root@docker ~]# docker exec -it  mydocker /bin/bash  
[root@2374fe85e0f0 /]# exit  

4.2.2 删除容器

#-f 停止容器,并删除

[root@docker ~]# docker rm -f mydocker  

#run --rm  启动容器执行内容后 退出并删除

[root@docker ~]# docker run --rm centos /bin/echo "123"   
123  

#快速删除所有容器:

[root@docker ~]# docker rm -f $(docker ps -a -q )  
9146f7e26188  
a13519f0377c  
c5b0041b7213  

4.3容器后台运行

[root@docker ~]# docker run -d nginx  
916022e180d8a357b4f70a8b71f3a05e7dad21a1a8be7053451698ca2adfb145  

5 docker 网络

 端口映射:

 把docker Nginx 80端口映射到本地81端口

[root@docker ~]# docker run -d -p 192.168.184.128:81:80 --name myngix nginx  
24d2dcf2d90d1a0db40342c76988387cd5474e0ed390a20a86115c6901410461  
[root@docker ~]# docker port myngix  
80/tcp -> 192.168.184.128:81  

多端口映射

[root@docker ~]# docker run  -d -p 443:443 -p 80:82 --name mynginx  nginx   
9707e898f6eea0169623716f51eab2028497a85f6a80c122c01cff540eea1d23  
[root@docker ~]# docker port mynginx  
82/tcp -> 0.0.0.0:80  
443/tcp -> 0.0.0.0:443  

6.docker数据管理

6.1数据卷

[root@docker ~]# docker run -d --name nginxV1 -v /data nginx  
6cd92fe83e6c1604bf18f0d0a80e952b79eaa3c5fa1d546da1d5b40f87707d7b  
[root@docker ~]# sh docker_in.sh nginxV1  

6.2 数据卷容器

[root@docker ~]# docker run -d -v /data/nfs-data:/data --name nfs-test  nginx  
9146f7e26188cb33818fc264e726a26a3b005781550ae6ce87c61565daf1315c  
[root@docker ~]# docker run -it --rm  --volumes-from nfs-test centos /bin/bash  

7.构建镜像

7.1手动

[root@docker ~]# docker run --name mynginx -it centos  
yum install wget -y  
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  
yum install nginx -y  
vi /etc/nginx/nginx.conf   
daemon off;  
exit  
[root@docker ~]# docker ps -a  
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES  
fea0f02517db        centos              "/bin/bash"         10 minutes ago      Exited (0) 29 seconds ago                       mynginx  
[root@docker ~]# docker commit -m "My Nginx" fea0f02517db www/mynginx:V1  
sha256:01ea2e767fe86e2f017a8c627641a28b64e0141a8e994fe5436e26693643225e  
[root@docker ~]# docker images  
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE  
www/mynginx         V1                  01ea2e767fe8        About a minute ago   380.4 MB  
[root@docker ~]# docker run --name  mynginxv1  -d -p 81:80 www/mynginx:V1 nginx  

7.2  dockfile 自动创建

创建docker目录,docker会自动找到docker目录

[root@docker nginx]# mkdir -p /opt/dockerfile/nginx  
[root@docker nginx]# cd .  

编写自动构建(开头D必须大写,才能被读到)

[root@docker nginx]# cat Dockerfile   
#This Dockerfile 

#基础构建镜像

FROM centos  

#维护者

MAINTAINER Jason.g   

#执行的命令

RUN yum install wget -y  
RUN wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  
RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  
RUN yum install nginx -y  
RUN echo "daemo off;" >>/etc/nginx/nginx.conf  
ADD index.html /usr/share/nginx/html/index.html  
EXPOSE 80  
CMD ["nginx"]  
[root@docker nginx]docker build -t mynginx:V2 .  
[root@docker nginx]#  docker images  
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE  
mynginx             V2                  3fdf9835f234        2 minutes ago       382.1 MB  

 

 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值