频道栏目
首页 > 资讯 > 云计算 > 正文

docker安装及使用技巧

18-06-30        来源:[db:作者]  
收藏   我要投稿

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安装及应用

yum install docker -y  
systemctl start docker  
systemctl status docker  

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  
相关TAG标签
上一篇:支付宝里那么多钱,为什么黑客不去入侵?黑客:大佬惹不起
下一篇:linux系统中ps命令解析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站