Docker 0x04: Docker 基本使用
Docker 基本使用
从利用docker镜像,跑起容器开始。使用现成的镜像。
第一步:明确要使用容器运行的应用的镜像相关
- 明确镜像名(仓库名)
- 是否指定明确的镜像tag版本
- 查看本地(本地叫什么?)有哪些镜像:> docker images -a
- 如果本地没有,会从远程的registry中
- 对于从docker官方registry,没有指定用户名称空间的话,会根据在官方library名称空间中寻找,如果没找到会提示没找到。非官方的一定要带上用户名/仓库名 这样才会从指定用户下的仓库拉取。
第二步:运行一个官方nginx应用
docker run --name nginx_webserver -d -p 80:80 nginx
- docker run 会根据指定的镜像名到本地,到官方hub找镜像,然后解包镜像,创建container容器通过镜像,运行应用,将应用的输出返回给docker-client. docker client的输出是docker-daemon返回的。
- --name 是指定容器的名称
- -d 已守护进程方式运行
- -p 80:80 指定容器服务的端口,映射宿主机的端口。这种对应image配置了需要网络端口,这里指定端口号而已。如果应用需要而不指定会怎样?
- 还有一些如:-e 给容器指定环境变量;--device添加一个设备给容器;
第三步:单纯下载镜像,pull
上面的docker run,如果本地没有镜像,那么会从docker hub上取,然后创建容器通过镜像。
其实很多时候我们可以先下载镜像到本地,后面再执行docker run.
这就是registry提供的上传下载功能,创建私有repo。
docker pull redis
第四步:设置国内docker-hub
由于有时候docker官方hub被墙,那么设置国内的镜像docker-hub是可以加快pull速度
- 找到/etc/docker/daemon.josn
- 在文件添加如下json数据:
{ "registry-mirrors": [ "https://registry.docker-cn.com" ] }
- 然后重启docker-daemon服务, 注意会已运行的容器会停掉:systemctl daemon-reload && systemctl restart docker
第五步:列出已有镜像和镜像物理目录在哪里
- 列出全部已有镜像: > docker images -a
- /var/lib/docker 是docker相关的物理目录
第六步:本地导入导出镜像及修改名字和tag
导出本地已有镜像:docker save image-id > a-file 或者参数指定文件 docker save image-id -o 'filepath'
导入镜像到本地: docker load < STDINPUT 或者 docker load -i 'filepath'
导入镜像会没有名字,可以通过docker tag image-id name:tag 来修改。修改存在的也可以。
第七步: 导入导出容器的文件系统
导出: docker export container > tarfile 或者docker export container -o 'filepath'
导入:docker import 'file' 会创建一个新的空文件系统的image然后导入file文件内容。详情google。这样可以将容器改变的做出新的镜像。
第八步: 宿主和容器互相复制数据
docker cp container:src_path host_dest_path
docker cp host_src_path container:src_path
第九步: 通过dockerfile定制我们自己的镜像
看篇文章《Dockerfile制作镜像》
Docker 0x04: Docker 基本使用的更多相关文章
- Docker 0x02: Docker生态
目录 Docker生态 Docker官网 0x00 网址 Docker组件 0x01. docker-client 与 docker-daemon 0x02. docker镜像 0x03. docke ...
- [经验交流] docker in docker 的变通实现方法
最近在做CI持续集成环境的容器化,其中一个工作是:在容器中构建容器镜像. 对于这个需求,网上有一些 Docker in Docker 的方法,具体需要修改宿主机的配置.这种方式在单机环境下.对安全要求 ...
- 【Docker】docker /var/lib/docker/aufs/mnt 目录满了,全是垃圾数据,咋搞?
命令: #!/bin/bash # 推荐方式 docker volume ls -f dangling=true | awk '{ print $2 }' | xargs docker volume ...
- jenkins和docker 使用docker作为slave
使用docker作为jenkins slave. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.com/ciandcd 参 ...
- .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行
本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...
- jenkins+docker 持续构建非docker in docker jenkins docker svn maven
工欲善其事必先利其器,为了解脱程序员的,我们程序员本身发明了很多好用的工具,通过各种工具的组合来达到我们想要的结果 本文采用jenkins docker svn maven作为相关工具,项目sprin ...
- [Docker基础]Docker安装教程
Install Docker Docker支持几乎所有的Linux发行版,也支持Mac和Windows. 各操作系统的安装方法可参考Docker官网. 安装环境 ubuntu 16.04 Docker ...
- 【Docker】Docker概述
[Docker] Docker可以说是近几年非常热门的技术之一了.不管是别人敦促我还是从自己的想法来说,都觉得Docker这玩意儿肯定是要好好学习一下的,无奈没啥时间专门播出来给Docker,一直以来 ...
- ubuntu 18.04安装docker以及docker内配置neo4j
如题 切换到root用户下 apt install docker.io 等啊等,很快,就好了.. 如图 即可使用 如果出现Cannot connect to the Docker daemon at ...
随机推荐
- ABP 菜单和权限
大致操作步骤,原理之后补充. 添加菜单: 在 ContractOwner.Web.Startup.ContractOwnerNavigationProvider 的SetNavigation方法中添加 ...
- 请指出document load和document ready的区别
document load文档的所有内容都加载完成 document ready文档的DOM加载完成
- 洛谷 P3373 【模板】线段树 2 题解
P3373 [模板]线段树 2 题目描述 如题,已知一个数列,你需要进行下面三种操作: 1.将某区间每一个数乘上x 2.将某区间每一个数加上x 3.求出某区间每一个数的和 输入格式 第一行包含三个整数 ...
- nginx lnmp之nginx+php
配置如下(在server部分添加): location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; ...
- Shell脚本之二 变量、字符串和数组
一.Shell 变量 1.1 定义变量 定义变量时,变量名不加美元符号($),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的 ...
- SQLite中字段顺序和PAGE_SIZE对性能的影响
1.背景 SQLite数据库中有1张表,该表含若干个字段,其中有1个字段为BLOB类型,且BLOB字段不是最后1个字段.表结构类似如下(col3为BLOB字段): T (col1 INTEGER,co ...
- kali渗透
局域网-断网&劫持(kali) 1.查看局域网中的主机 fping –asg 192.168.1.0/24 2.断网 arpspoof -i wlan0 -t 192.168.100 19 ...
- 在flask中使用sqlalchemy插入数据返回新增的id
user = User(‘name’=‘张三’)db.session.add(user)db.session.flush()#输出新插入数据的主键print(user.id)#此时数据才插入到数据库中 ...
- [转帖]智能合约和 DApp
智能合约和 DApp https://www.jianshu.com/p/5e7df3902957 2018.10.08 19:50:41字数 3,403阅读 9,819 2017年11月份和2018 ...
- Qt元对象(Meta-Object)系统与反射
反射 -在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问.检测和修改它本身状态或行为的一种能力.[1]用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为. 要注意 ...