当前位置:   article > 正文

ubuntu16.04安装最新版docker、docker-compose、docker-machine及docker的基本使用_ubuntu docker-machie

ubuntu docker-machie

一、docker简介

  1. 问题
  2. - 安装及配置依赖软件:安装fastdfs步骤非常多,安装繁琐;
  3. - 项目部署问题:项目上线时,需要在服务器上安装和配置项目运行环境(依赖包和配置),当换一台新的服务器,项目运行环境需要再重新装一遍
  4. fastdfs + 全文检索 + Redis + ngixn + uWSGI + python3 (django等一系列的python包) + ...
  5. 解决:
  6. 1. vmware虚拟机 -> 安装依赖软件并配置 -> 导出ubuntu镜像
  7. -> 新服务器:安装vmware并加载ubuntu镜像
  8. 2. 使用docker容器技术 (隔离环境)
  9. docker容器 --> 安装依赖软件并配置 --> 导出docker镜像
  10. --> 新服务器:安装docker并加载docker镜像 -> 根据镜像运行容器
  11. docker是什么?
  12. 打包应用及其依赖包到容器中,从而可以将应用快速地部署到任意的Linux系统上。
  13. - 隔离环境
  14. - 性能开销低,启动速度快

 

在这里插入图片描述

Docker相关概念

  1. Docker组件
  2. 一、Docker架构 (C/S)
  3. Docker是一个客户端-服务器(C/S)架构程序,类似 redis
  4. - 客户端: docker命令行工具
  5. - 服务器: Docker守护进程(docker引擎)
  6. 二、docker镜像 (image):
  7. - 压缩包文件,包含了应用程序及其运行依赖的软件和配置
  8. - 生成镜像: 新镜像 = 现有镜像/官方镜像 + 个性化软件和配置
  9. 例: 新镜像 = ubuntu镜像 + fastdfs + nginx
  10. 一些镜像举例:
  11. 1. 系统级镜像: 如Ubuntu镜像,CentOS镜像等;
  12. 2. 工具栈镜像: 如Golang镜像,Flask镜像,Tomcat镜像等;
  13. 3. 服务级镜像: 如MySQL镜像,MongoDB镜像,RabbitMQ镜像等;
  14. 三、docker仓库 (Registry,注册中心): 保存docker镜像
  15. - 公有仓库
  16. - Docker Hub: Docker的官方仓库,最重要、最常用的 image 仓库。
  17. - https://hub.docker.com/
  18. - 私有仓库
  19. - 是开发者或者企业自建的镜像存储库,用于内部开发和产品的发布
  20. 四、docker容器(container)
  21. - 由镜像文件运行得到容器
  22. - 每个容器相互隔离
  23. - 类比
  24. - 镜像: 类
  25. - 容器: 对象

 

二、docker使用

安装docker

安装前说明:

本文将介绍在ubuntu16.04系统下安装和升级docker、docker-compose、docker-machine。

docker:有两个版本:docker-ce(社区版)和docker-ee(企业版)。

        笔者这里介绍安装或升级的是最新版docker-ce(社区版)。

        参考官网地址:https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#os-requirements

docker-compse:可运行和管理多个docker容器。

docker-machine:docker官方提供的docker管理工具。可管理多个docker主机,可搭建swarm集群。

一、docker安装

1,卸载旧版本docker

全新安装时,无需执行该步骤

$ sudo apt-get remove docker docker-engine docker.io

2,更新系统软件

$ sudo apt-get update

3,安装依赖包

  1. $ sudo apt-get install \
  2. apt-transport-https \
  3. ca-certificates \
  4. curl \
  5. software-properties-common

4,添加官方密钥

执行该命令时,如遇到长时间没有响应说明网络连接不到docker网站,需要使用代-理进行。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

显示OK,表示添加成功.

5,添加仓库

  1. $ sudo add-apt-repository \
  2. "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  3. $(lsb_release -cs) \
  4. stable"

6,再次更新软件

经实践,这一步不能够省略,我们需要再次把软件更新到最新,否则下一步有可能会报错。

$ sudo apt-get update

7,安装docker

如果想指定安装某一版本,可使用 sudo apt-get install docker-ce=<VERSION>  命令,把<VERSION>替换为具体版本即可。

以下命令没有指定版本,默认就会安装最新版

$ sudo apt-get install docker-ce

8,查看docker版本

$ docker -v

显示“Docker version 17.09.0-ce, build afdb6d4”字样,表示安装成功。

9.docker的启动与停止

  1. # 启动docker
  2. sudo service docker start
  3. # 停止docker
  4. sudo service docker stop
  5. # 重启docker
  6. sudo service docker restart

二、docker-compose安装

1,下载docker-compose

$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2,授权

$ sudo chmod +x /usr/local/bin/docker-compose

3,查看版本信息

$ docker-compose --version

显示出版本信息,即安装成功。

三、docker-machine安装

说明:docker-machine的使用是要基于virtualBox的。如果没有安装安装过,请先安装virtualBox。

1,安装virtualBox

登录virtualBox官网:https://www.virtualbox.org/wiki/Linux_Downloads

找到"Ubuntu 16.04 ("Xenial")  i386 |  AMD64"字样,点击“AMD64”进行下载。

下载后,执行以下命令进行安装:

$ sudo dpkg -i virtualbox-5.2_5.2.0-118431_Ubuntu_xenial_amd64.deb

2,下载并安装docker-machine

  1. $ curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine &&
  2. chmod +x /tmp/docker-machine &&
  3. sudo cp /tmp/docker-machine /usr/local/bin/docker-machine

3,查看版本信息

$ docker-machine version

显示出版本信息,即安装成功。

四、镜像操作命令

  1. # 一、列出镜像
  2. sudo docker image ls
  3. # 二、加载镜像
  4. # 1.拉取官方的镜像 (Docker官方提供的镜像,都放在默认的组library中,可以省略)
  5. sudo docker image pull library/hello-world
  6. sudo docker image pull hello-world
  7. # 2.加载本地镜像
  8. sudo docker load -i ./ubuntu.tar
  9. sudo docker load -i fastdfs_docker.tar
  10. # 三、删除镜像 (没有创建容器的镜像才可以删)
  11. sudo docker image rm 镜像名或镜像id
  12. 例: sudo docker image rm hello-world

 

五、容器操作命令

  1. 一、创建容器(根据镜像运行容器)
  2. sudo docker run [option] 镜像名:TAG [向启动容器中传入的命令] # 说明 :TAG 部分可以省略
  3. # 示例1:创建交互式容器
  4. sudo docker run -it --name=myubuntu ubuntu /bin/bash
  5. # 示例2:创建守护式容器
  6. sudo docker run -dit --name=myubuntu2 ubuntu
  7. 常用可选参数说明:
  8. --name 为创建的容器命名
  9. -i 表示以“交互模式”运行容器 --interactive
  10. -t 表示容器启动后会进入其命令行。常与-i连用,加入这两个参数后,容器创建就能进入容器
  11. -d Run container in background and print container ID --detach 解绑
  12. 守护式容器,后台运行,而不会自动进入容器(命令行);
  13. 如果只加-i -t 两个参数,创建后就会自动进入容器(命令行)
  14. -v 目录映射关系,使用格式: 宿主机目录:容器中目录,可以使用多个-v做多个目录或文件映射 --volume
  15. 注意: 最好做目录映射,在宿主机上做修改,然后共享到容器上。
  16. --network=host 表示将主机的网络环境映射到容器中,容器的网络与主机相同
  17. -p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射
  18. -e 为容器设置环境变量
  19. 二、查看容器
  20. # 列出本机正在运行的容器
  21. sudo docker container ls
  22. # 列出本机所有容器,包括已经终止运行的
  23. sudo docker container ls --all
  24. 三、启动和停止容器
  25. # 启动一个已经停止的容器
  26. sudo docker container start 容器名或容器id
  27. # 停止一个已经在运行的容器
  28. sudo docker container stop 容器名或容器id
  29. # 杀掉一个已经在运行的容器
  30. sudo docker container kill 容器名或容器id
  31. 四、删除容器:不能删除正在运行的容器
  32. sudo docker container rm 容器名或容器id
  33. 五、进入已运行的容器(请参考下图)
  34. sudo docker exec -it 容器名或容器id 进入后执行的第一个命令
  35. sudo docker exec -it myubuntu2 /bin/bash
  36. 六、将容器保存为镜像
  37. sudo docker commit 容器名 镜像名
  38. 七、镜像备份与迁移
  39. # 我们可以通过save命令将镜像打包成文件,拷贝给别人使用
  40. sudo docker save -o 保存的文件名 镜像名
  41. sudo docker save -o ./ubuntu.tar ubuntu
  42. # 在拿到镜像文件后,可以通过load方法,将镜像加载到docker中
  43. sudo docker load -i ./ubuntu.tar

 

进入容器内部
在这里插入图片描述

六、宿主机与容器文件交互

1 从容器拷贝文件到宿主机
拷贝方式为:

docker cp 容器名:容器中要拷贝的文件名及其路径 要拷贝到宿主机里面对应的路径

例如,将容器:

mycontainer

中路径:

/opt/testnew/

下的文件:

file.txt

拷贝到宿主机:

/opt/test/

路径下,在宿主机中执行命令如下:

docker cp mycontainer:/opt/testnew/file.txt /opt/test/


2 从宿主机拷贝文件到容器
拷贝方式为:

docker cp 宿主机中要拷贝的文件名及其路径 容器名:要拷贝到容器里面对应的路径

例如,将宿主机中路径:

/opt/test/

下的文件:

file.txt

拷贝到容器:

mycontainer

的:

/opt/testnew/

路径下,同样还是在宿主机中执行命令如下:

docker cp /opt/test/file.txt mycontainer:/opt/testnew/
注意:不管容器有没有启动,拷贝命令都会生效。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/570410
推荐阅读
相关标签
  

闽ICP备14008679号