简述

`docker是如火如荼的容器技术,今后会陆续上传关于微服务技术的学习笔记,希望能和大家一起学习一起分享!`

docker环境搭建

1.获取最新版的Docker安装包


$ wget -qO- https://get.docker.com/ | sh

2.直接使用docker无须加 sudo


# Add the docker group if it doesn't already exist.
$ sudo groupadd docker
# Add the connected user "${USER}" to the docker group.
# Change the user name to match your preferred user.
# You may have to logout and log back in again for
# this to take effect.
$ sudo gpasswd -a ${USER} docker
# Restart the docker daemon.
$ sudo service docker restart
#############单条指令##############
sudo usermod -aG docker $USER # 把当前用户加入docker组

3 . 从 17.04 以后,可以用下面的命令安装。


$ export CHANNEL=stable
$ curl -fsSL https://get.docker.com/ | sh -s -- --mirror Aliyun

镜像基本操作指令

1.搜索镜像


$ sudo docker search ubuntu

2.获取镜像


$ sudo docker pull ubuntu

3.查看镜像信息


$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest ccc7a11d65b1 3 weeks ago 120MB
swarm latest 7ecf8baf8eae 8 weeks ago 15.8MB

4.查看镜像的详细信息


$ sudo docker inspect 7ecf8baf8eae
#或
$ sudo docker inspect ubuntu

5.删除镜像


$ sudo docker rmi swarm
Error response from daemon: conflict: unable to remove repository reference "swarm" (must force) - container c445ef19d3e7 is using its referenced image 7ecf8baf8eae

因此,删除镜像之前得确保容器已删除

6.删除容器


$ sudo docker rm 7ecf8baf8eae #删除指定容器
$ sudo docker rm $(docker ps -a -q) #删除所有已生成容器

7.复制镜像


$ sudo docker tag ubuntu:latest hzy/test:latest
hzy@hadoop:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hzy/test latest ccc7a11d65b1 3 weeks ago 120MB
ubuntu latest ccc7a11d65b1 3 weeks ago 120MB
swarm latest 7ecf8baf8eae 8 weeks ago 15.8MB

创建镜像

1.创建一个新镜像,进行操作


$ docker run -it ubuntu /bin/bash --name bieming
root@3138d574074e:/#

2.使用 docker commit 来提交一个新的镜像


$ sudo docker commit -m "added a new file" -a "huangzy" 3138d574074e hzy/test
3138d574074esha256:f8b1d41ff97589f7c207577b391b1d5074b197a1ec3196a8907269ec6e00dcae
# -a, --author="" 作者信息
# -m, --message="" 提交消息
# -p, --pause=ture 提交时暂停容器运行

存出和载入镜像

1.存出镜像


$ sudo docker save -o ubuntu.tar ubuntu:latest

2.载入镜像


$ sudo docker load --input ubuntu.tar
Loaded image: ubuntu:latest
#或
$ sudo docker load < ubuntu.tar

容器

1.创建容器


$ sudo docker run -it ubuntu:latest /bin/bash
root@939831baa91d:/#
# -t 分配一个伪终端绑定到容器的标准输入上
# -i 让容器的标准输入保持打开
# -d 让Docker容器在后台以守护态(Daemonized)形式运行

2.终止容器


$ sudo docker stop 939831b

3.查看容器状态


$ sudo docker ps
#或
$ sudo docker ps -a -q # 可查看到终止状态的容器

4.使用 docker start 命令来重新启动处于终止状态的容器


$ sudo docker start 939831b
#或
$ sudo docker restart 939831b

5.删除容器


$ sudo docker rm 3138d574074e
Error response from daemon: You cannot remove a running container 3138d574074e5a45a543760c2ecb3935b0173d89940c05fa3cd969d1112338ff. Stop the container before attempting removal or force remove
#应该先停止容器服务,再进行删除。
$ sudo docker stop 3138d574074e

导入和导出容器

1.导出容器(无论该容器是否处于运行状态)


$ sudo docker export 3138d > test_for_run.tar

2.导入容器(导出的文件可以导入,成为镜像)


$ cat test_for_run.tar | sudo docker import - test/ubuntu:v1
sha256:b974a00be6dd0ac5f794c3ec5ef6b1812cdc535390b67950cf220aa1e557c759

仓库(Repository)

仓库:是集中存放镜像的地方。

注册服务器(Registry):是存放仓库的具体服务器。

1.终端登录Docker Hub


$ sudo docker login
[sudo] password for hzy:
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: s152118130110
Password:
Login Succeeded

2.将本地镜像推送到Docker Hub


$ sudo docker push swarm:latest

创建和使用私有仓库

1.默认情况下,会将仓库存放于容器的 /tmp/registry 目录下,如果容器被删除,则数据也会丢失,所以我们可以通过 -v 参数来将镜像文件存放在本地的指定路径


$ sudo docker run –d –p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry
# -i: 保持sdtin开放状态
# -d: 使容器以守护进程方式后台运行,并打印容器id
# -t: 分配一个tty(虚拟终端设备)
# -v: 绑定挂载一个容器内的路径到宿主机路径
# -p: 映射一个容器的端口到宿主机端口
# -restart: 当容器退出时的重启策略
# -name: 给容器命名一个名称

打开chrome输入 http://127.0.0.1:80/v2

2.标记


$ sudo docker tag swarm 192.168.18.19:5000/swarm

3.上传


$ sudo docker push 192.168.18.19:5000/swarm
The push refers to a repository [192.168.18.19:5000/swarm]
Get https://192.168.18.19:5000/v2/: http: server gave HTTP response to HTTPS client
#由于客户端采用https,docker registry未采用https服务所致。一种处理方式是把客户对地址“192.168.1.100:5000”请求改为http
#在 "etc/docker" 目录下,创建daemon.json文件,并在文件写入:
{"insecure-registries":["ip地址:5000"]}
#重新启动docker
$ sudo service docker restart
#重新上传镜像即可
$ sudo docker push 192.168.18.19:5000/swarm
# 查看上传是否成功
$ curl http://192.168.18.19:5000/v2/_catalog
{"repositories":["swarm"]}

4.下载镜像


$ sudo docker pull 192.168.18.19:5000/swarm

客户机访问Registry

1.对于需要访问Registry仓库的客户机,需要修改文件。


# ubuntu 在以下文件添加 {"insecure-registries":["192.168.18.19:5000]}
$ vi /etc/docker/daemon.json
# centos 在以下文件添加 OPTIONS=‘--SELINUXENABLED--INSECUREREGISTRY192.168.18.19:5000’
$ vi /etc/sysconfig/docker

数据卷

1 . 使用 -v标记可以指定挂载一个本地的目录到容器中


$ docker run -d -P --name web -v /src/webapp:/opt/webapp:ro training/webapp python app.py
# 地目录的路径必须是绝对路径,如果目录不存在 Docker 会自动为你创建它。

2 . 使用 -v 标记也可以从主机挂载单个文件到容器中


$ docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash
# 这样可以记录在容器输入过的命令

进一步?

待续。。。

【docker 一】入门实践、环境部署、基本操作指令、镜像库、数据卷的更多相关文章

  1. 微服务 + Docker + Kubernetes 入门实践 目录

    微服务 + Docker + Kubernetes 入门实践: 微服务概念 微服务的一些基本概念 环境准备 Ubuntu & Docker 本文主要讲解在 Ubuntu 上安装和配置 Dock ...

  2. Docker容器入门实践

    Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 ...

  3. 自动化运维工具Ansible之LNMP实践环境部署

    Ansible-实战指南-LNMP环境部署,并使用zabbix监控 主机规划 系统初始化:必要的系统初始化 基础组件包括:zabbix监控,mariadb(用于存放zabbix监控信息) 业务组件包括 ...

  4. Docker基础入门实践

    原文地址 基本概念 Docker三个基本概念 镜像(Image) 容器(Container) 仓库(Repository) 镜像 镜像可以理解为只读模板,如包含一个centos操作系统环境 容器 Do ...

  5. 《Docker从入门到跑路》之镜像和容器的基本操作

    一.获取镜像 官方提供了一个公共镜像仓库Docker Hub,默认是从这上面获取镜像的. 搜素镜像使用docker search 命令: # docker search --help Usage: d ...

  6. docker部署harbor私有镜像库(3)

    一.harbor介绍 在实际生产运维中,往往需要把镜像发布到几十.上百台或更多的节点上.这时单台Docker主机上镜像已无法满足,项目越来越多,镜像就越来越多,都放到一台Docker主机上是不行的,我 ...

  7. Docker 从入门到放弃(三)镜像使用

    当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载. 下面我们来学习: 1.管理和使用本地 Docker ...

  8. Docker部署Registry私有镜像库

    拉取镜像 docker pull registry:2.6.2   生成账号密码文件,这里采用htpasswd方式认证 docker run --rm --entrypoint htpasswd re ...

  9. 1.docker介绍、命令、容器、镜像、数据卷、Dockerfile、常用软件安装、推送阿里云

    一.docker介绍 1.docker是什么 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各 ...

  10. SuperMap开发入门2——环境部署

    由于超图的相关资源比较少,可参考官方提供的<SuperMap iDesktop 9D安装指南>和<SuperMap iObjects .NET 9D安装指南>完成应用软件和开发 ...

随机推荐

  1. 删除链表中倒数第n个节点

    给定一个链表,删除链表中倒数第n个节点,返回链表的头节点. 样例 给出链表1->2->3->4->5->null和 n = 2. 删除倒数第二个节点之后,这个链表将变成1 ...

  2. jQuery点击下拉菜单的展示与隐藏

    首先点击显示某个div,然后要求再次点击时消失,或者点击document的其他地方会隐藏掉这个层,涉及到冒泡的问题,阻止document冒泡到dom上.代码如下: var $el = $(" ...

  3. web前端优化--DOM性能优化

    1.DOM访问与修改的优化: DOM访问是有代价的,修改DOM则会引起DOM的重绘与重排,而这两种操作会消耗性能. (1)缓存DOM:将频繁访问的对象或属性使用变量缓存起来,每次访问的时候,直接使用变 ...

  4. Page visibility 页面可见性

    一直以来,判断页面是不是当前可见标签,浏览器有没有缩小都是比较麻烦的.   通过页面可见性API可以获得相关信息document.hidden  判断页面当前是不是可见的document.visibi ...

  5. ContextLoaderListener - 运行原理

    基本概念: servletContext:http://blog.csdn.net/yjw757174266/article/details/45072975 1.  使用ContextLoaderL ...

  6. let 和const与var的不同

    1. let的作用域在代码块中仅限在当前的作用于中 { var str1 = 12; console.log(str1); let str2 = 20; console.log(str2); //20 ...

  7. 在昆明网络SEO的走向站外的优化该何去何从?

    昨天大概讲了SEO的站内优化,今天我们来讲讲网站站外的优化. 站外主要以第三平台为主,其中包含站外推广:常规推广.外链建设:利用第三方平台优化关键词排名: 1.博客平台,现在有好多博客平台是很不错的, ...

  8. jenkins+docker 持续构建非docker in docker jenkins docker svn maven

    工欲善其事必先利其器,为了解脱程序员的,我们程序员本身发明了很多好用的工具,通过各种工具的组合来达到我们想要的结果 本文采用jenkins docker svn maven作为相关工具,项目sprin ...

  9. SSM :MyBatis与Spring的整合

    MyBatis与Spring的整合 一:Spring整合MyBatis的准备工作: (1.)在项目中加入Spring,ByBatis及整合相关的jar文件 (2.)建立开发目录结构,创建实体类 (3. ...

  10. 关于springboot启动的问题.

    IDE使用的是IDEA: 遇到的问题:使用springboot自带main方法无法启动示例,解决方案: 如果大家使用Application中的main方法无法正常启动时,可以去修改Project St ...