docker 相关

docker安装

sudo apt-get update   更新源
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

error:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: 
Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: 
dial unix /var/run/docker.sock: connect: permission denied 

根据错误信息可知是权限问题 。

可能是使用非root用户启用docker导致的,Docker进程使用Unix Socket而不是TCP端口,而默认情况下,Unix socket属于root用户,因此需要root权限才能访问。

将当前用户加入到docker组中   sudo gpasswd -a ubuntu docker   ubuntu 用户名 docker 组名

定制镜像:

镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

Dockerfile 文件

From ubuntu:16.04
MAINTAINER "author"    # 指定作者
RUN mkdir mydocker     # 执行命令
RUN touch index
RUN echo "this is docker" > mydocker/index
RUN cat mydocker/index
RUN echo "this is my docker" > mydocker/index
RUN cat mydocker/index

构建镜像
docker build -t mydocker:v1 .   mydocker:v1 镜像名:标签    . 表示上下文路径

启动容器:

1. docker run -it --rm ubuntu:16.04 bash    (进行交互式操作)      
-it:  -i 交互式操作  -t 终端
ubuntu:16.04 镜像名字及标签
--rm:这个参数是说容器退出后随之将其删除 
bash: 命令,这里我们想要一个交互式的shell

2. docker run --name web2 -d -p 8081:8080 nginx:v2    
81:80   81映射到宿主机的端口号   80 内部程序端口号  容器启动后, 直接通过http://ip:8081/xx 访问即可 

 

 

 

删除镜像: 

docker rmi  镜像id   若镜像无对应的容器存在时可直接删除   

镜像有对应的容器存在时 先删除容器再删除镜像

首先列出当前所有的容器  docker ps -a 

然后找到 image镜像 对应的容器,通过容器 id 关闭容器并删除容器

 

 然后根据镜像id 删除该镜像

 

关键点

1. 删除容器前需要先关闭容器 stop

2. 删除镜像 docker rmi ID  删除容器 docker rm ID

3. 先关闭删除容器,再删除镜像。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是Docker?为什么要使用DockerDocker是一种容器化技术,可以将应用程序打包成容器,使其能够在任何环境中运行,而不需要担心环境差异问题。Docker可以提高应用程序的可移植性、可伸缩性和安全性。 2. Docker和虚拟机的区别是什么? 虚拟机是一种完整的操作系统虚拟化技术,而Docker是一种应用程序级别的虚拟化技术。虚拟机需要模拟整个操作系统,包括内核、系统服务等,而Docker只需要模拟应用程序的运行环境。因此,Docker比虚拟机更轻量级、更快速、更节省资源。 3. Docker的三个基本组件是什么? Docker的三个基本组件是Docker Engine、Docker Hub和Docker CLI。Docker Engine是Docker的核心组件,负责管理Docker容器和镜像。Docker Hub是Docker的公共镜像仓库,用户可以在其中分享和下载镜像。Docker CLI是Docker的命令行接口,用户可以使用Docker CLI来创建、管理和运行Docker容器。 4. Docker的镜像和容器是什么? Docker镜像是一个静态的文件,包含了应用程序运行所需的所有文件和依赖项。Docker容器是一个运行中的实例,它基于Docker镜像创建,包含了应用程序的运行环境和状态。 5. 如何创建Docker镜像? 创建Docker镜像的基本步骤是:创建一个Dockerfile文件,定义Docker镜像的构建过程;使用docker build命令构建Docker镜像;使用docker push将Docker镜像推送到Docker Hub镜像仓库中。 6. 如何创建Docker容器? 创建Docker容器的基本步骤是:使用docker run命令创建Docker容器,并指定所需的Docker镜像和容器的名称;使用docker start、docker stop、docker restart等命令管理Docker容器的生命周期。 7. 如何保证Docker容器的安全性? 保证Docker容器的安全性可以从以下几个方面入手:使用最小化的Docker镜像和应用程序;限制Docker容器的权限;监控Docker容器的运行状态;及时更新Docker镜像和应用程序等。 8. 如何扩展Docker容器? 扩展Docker容器可以从以下几个方面入手:使用Docker Swarm或Kubernetes等容器编排工具管理多个Docker容器;使用Docker Compose将多个Docker容器组合成一个应用程序;使用Docker网络使多个Docker容器之间进行通信。 9. 如何在Docker容器中运行多个服务? 在Docker容器中运行多个服务可以使用以下几种方式:使用Docker Compose将多个Docker容器组合成一个应用程序;使用Docker网络将多个Docker容器连接在一起;在Docker容器中运行多个进程,使用supervisord等工具管理进程。 10. 如何实现Docker容器的持久化存储? 实现Docker容器的持久化存储可以从以下几个方面入手:使用Docker数据卷将数据存储在主机上;使用Docker网络将数据存储在其他Docker容器中;使用第三方存储系统,如NFS、GlusterFS等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值