Docker容器操作、仓库管理、网络配置、安全

本文介绍了Docker的基础操作,包括启动、重启、关闭命令,对比了Docker与虚拟机的区别。核心概念包括镜像、容器和仓库。详细阐述了镜像的获取、创建、删除,容器的管理和仓库的使用。还讨论了Docker的网络配置、Dockerfile创建镜像以及安全特性。最后提到了Docker的高级网络配置和管理工具。
摘要由CSDN通过智能技术生成

Docker启动、重启、关闭命令

启动:systemctl start docker

守护进程重启:sudo systemctl daemon-reload

重启docker服务:sudo service docker restart

关闭docker:service docker stop

关闭docker:systemctl stop docker

 

Docker与虚拟机比较

1、docker容器很快,启动和停止可以在秒级别实现。

2、docker容器对系统资源需求很少,一台主机上可以同时运行数千个docker容器。

3、docker通过类似git的操作来方便用户获取、分发和更新应用镜像,指令简明,学习成本较低。

4、docker通过dockerfile配置文件来支持灵活的自动化创建和部署机制,提高工作效率。

 

Docker核心概念

1、镜像:类似于虚拟机镜像,可以理解为面向docker引擎的只读模板,包含文件系统。

2、容器:

docker容器类似于一个轻量级的沙箱,利用容器可以实现运行和隔离应用。

容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是互相隔离、互不可见的。

读者可以把容器看做一个简易版的Linux系统环境(这包括root用户权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序打包而成的应用盒子。

镜像自身是只读的。容器从镜像启动的时候,docker会在镜像的最上层创建一个可写层,镜像本身将保持不变。

3、仓库:

类似于代码仓库,是集中存放镜像文件的场所。其管理理念和git十分相似。

 

Docker镜像操作

获取镜像:

docker pull ubuntu:14.04

利用镜像创建一个容器,在其中运行bash应用:

docker run -t -i ubuntu /bin/bash

查看镜像信息:

docker images

获取镜像详细信息:

docker inspect 5506de2b643b

搜寻镜像:

docker search mysql

删除容器:

docker rmi mysql:latest

 

创建镜像:基于已有镜像的容器创建、基于本地模板导入、基于dockerfile创建。

基于已有镜像的容器创建:

docker run -ti ubuntu:14.04 /bin/bash

sudo docker commit -m "Added a new file" -a "Docker Newbee" a925cb40b3f0 test

基于本地模板文件导入镜像:

cat ubuntu-14.04-x86_64-minimal.tar.gz |docker import - ubuntu:14.04

存储镜像:

sudo docker save -o ubuntu_14.0.tar ubuntu:14.04

载入镜像:

sudo docker load --input ubuntu_14.04.tar

上传镜像:

sudo docker tag test:latest user/test:latest

sudo docker push user/test:latest

 

Docker容器操作

新建容器:

sudo docker create -it ubuntu:latest

新建并启动一个容器:

sudo docker run -it ubuntu:14.04 /bin/bash

利用docker run来创建并启动容器时,docker在后台运行的标准操作包括:

检查本地是否存在指定的镜像,不存在就从共有仓库下载。

利用镜像创建并启动一个容器。

分配一个文件系统,并在只读的镜像层外挂载一层可读写层。

从宿主主机配置的网桥接口中桥姐一个虚拟接口到容器中去。

从地址池配置一个IP地址给容器。

执行用户指定的应用程序。

执行完毕之后容器被终止。

 

启动bash终端,允许用户进行交互:

sudo docker run -t -i ubuntu:14.04 /bin/bash

进入容器:

docker exec -it ubuntu:14.04 /bin/bash

删除容器:

docker rm bb21ac673673

 

Docker仓库

区别docker注册服务器、docker仓库(共有仓库、私有仓库),docker官方维护的公共仓库:https://hub.docker.com, 其中包括15000多个镜像。

登录:

docker login

 

Docker网络配置

端口映射访问容器:

docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py

容器互联实现容器之间的通信:

docker run -d --name db training/postgres

docker run -d -p --name web --link db:db training/webapp python app.py

 

使用Dockerfile创建镜像

dockerfile组成:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。

#第一行必须制定基于的基础镜像

FROM ubuntu

#维护者信息

MAINTAINER docker_user docker_user@email.com

#镜像的操作指令

RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list

RUN apt-get update && apt-get install -y nginx

RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

#容器启动时执行指令

CMD /usr/sbin/nginx

创建镜像:(docker build -t 生成镜像标签 dockerfile所在路径)

docker build -t build_repo/first_image /tmp/docker_builder/

 

docker安装使用操作系统

Busybox、Debian/Ubuntu、CentOS/Fedora、CoreOS

Busybox:一个集成了一百多个最常用Linux命令和工具的软件工具箱,它在单一的可执行文件中提供了精简的Unix工具。

docker search busybox

docker pull busybox

启动busybox:

docker run -it busybox

启动Ubuntu并进入容器:

docker run -ti ubuntu:14.04 /bin/bash

 

Docker 核心技术

docker底层依赖的核心技术主要包括Linux操作系统的命名空间、控制组、联合文件系统和Linux虚拟网络支持。

每个容器都可以拥有自己单独的命令空间,运行在其中的应用都像在独立的操作系统中运行一样。命名空间保证了容器之间彼此互不影响。

 

Docker安全

docker安全很大程度上依赖于Linux系统本身,评估安全性时,主要考虑以下几个方面:

1.Linux内核的命名空间机制提供的容器隔离安全;

2.Linux控制组对容器资源的控制能力安全;

3.docker程序本身的抗攻击性;

4.其他安全增强机制(包括AppArmor、SELinux等)对容器安全性的影响。

 

Docker高级网路网络配置

docker启动时会在主机上自动创建一个docker0虚拟网桥,实际上是一个Linux网桥,它会在挂载在其上的接口之间进行转发。同时,docker随机分配一个本地未占用的私有网段中的一个地址给docker0接口,此后启动的容器内的网口也会自动分配一个同一网段的地址。当创建一个docker容器的时候。同时会创建一对veth pair接口。

 

docker网络管理工具:pipework、playground。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值