Docker的基本使用 1

简介: Docker的基本使用

1. 初始docker

1.1 docker概念

我们写的代码会接触到好几个环境:开发环境、测试环境以及生产环境:


  • Docker 是一个开源的应用容器引擎
  • 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)
  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上
  • 容器是完全使用沙箱机制,相互隔离
  • 容器性能开销极低
  • Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)

1.2 安装docker

Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,本课程基于CentOS 7 安装

Docker。官网:https://www.docker.com

# 1、yum 包更新到最新 
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y 
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v

1.3 docker架构

  • **镜像(Image):**Docker 镜像(Image),就相当于是 一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包 含了完整的一套 Ubuntu16.04 最小系统的 root 文件系 统。
  • 容器(Container):镜像(Image)和容器(Contain er)的关系,就像是面向对象程序设计中的类和对象一 样,镜像是静态的定义,容器是镜像运行时的实体。容 器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心, 用来保存镜像。

1.4 配置 Docker 镜像加速器

默认情况下,将来从docker hub(https://hub.docker.com/)上下载

docker镜像,太慢。一般都会配置镜像加速器:

• USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn

• 阿里云

• 网易云

• 腾讯云

本次我们使用阿里云镜像

1.登录阿里云网站(https://www.aliyun.com/

  1. 查看文件/etc/docker/daemon.json
# 执行如下命令: 
cat /etc/docker/daemon.json

2 .docker命令

2.1 进程相关命令

关于进程相关的命令

2.1.1 启动docker服务

这里注意防火墙状态,如果无法映射对应的端口报错,删除网卡重新启动docker

systemctl start docker

2.1.2 停止docker服务

systemctl stop docker

2.1.3 重启docker服务

systemctl restart docker

2.1.4 查看docker服务状态

systemctl status docker

2.1.5 开机启动docker服务

systemctl enable docker

2.2 Docker 镜像相关命令

2.2.1 查看镜像

  • 查看本地所有的镜像
docker images
docker images –q # 查看所用镜像的id

REPOSITORY:镜像名称

TAG:镜像标签

IMAGE ID:镜像ID

CREATED:镜像的创建日期

SIZE:镜像大小

2.2.2 搜索镜像

  • 从网络中查找需要的镜像
docker search 镜像名称

NAME:镜像名称

DESCRIPTION:镜像描述

STARS:用户评价,反应一个镜像的受欢迎程度

OFFICIAL:是否官方

AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

2.2.3 拉取镜像

从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本。 如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。

docker pull 镜像名称

2.2.4 删除镜像

删除本地镜像

docker rmi 镜像id # 删除指定本地镜像
docker rmi `docker images -q` # 删除所有本地镜像

关于docker更多命令, 大家可以菜鸟教程查看, 网址:

https://www.runoob.com/docker/docker-command-manual.html

2.3 容器相关的命令

2.3.1 查看容器

docker ps # 查看正在运行的容器
docker ps –a # 查看所有容器,包括正在运行和停止的容器

2.3.2 创建并启动容器

docker run -di --name=xx images名称 参数
docker create xx/如果要运行 使用docker start 命令

参数说明:

• -i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。

• -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。

• -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。

• -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器

• --name:为创建的容器命名。

1)交互式容器

交互式方式创建并启动容器,启动完成后,直接进入当前容器。使用exit命令退出容器。需要注意的是以此种方式 启动容器,如果退出容器,则容器会进入停止状态。

# 先拉取一个镜像;这一步不是每次启动容器都要做的,而是因为前面我们删除了镜像,无镜像可用所以才再拉取一个 
docker pull centos:7 
#创建并启动名称为 mycentos7 的交互式容器;下面指令中的镜像名称 centos:7 也可以使用镜像id 
docker run -it --name=mycentos7 centos:7 /bin/bash

2)守护式容器

创建一个守护式容器;如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。命令如下(容器名称 不能重复):

#创建并启动守护式容器
docker run -di --name=mycentos2 centos:7
#登录进入容器命令为:docker exec -it container_name (或者 container_id) /bin/bash(exit退出 时,容器不会停止)
docker exec -it mycentos2 /bin/bash

2.3.3 进入容器

docker exec 参数 # 退出容器,容器不会关闭
eg: 
docker exec -it 容器名称 /bin/bash

2.3.4 停止容器

docker stop 容器名称或者容器id

2.3.5 启动容器

docker start 容器名称或者容器id

2.3.6 删除容器

#删除指定容器
docker rm 容器名称或者容器id
# 删除所有容器:
docker rm `docker ps -a -q`

2.3.7 查看容器信息

docker inspect 容器名称或者容器id
• 1

说明:容器之间在一个局域网内,linux宿主机器可以与容器进行通信;但是外部的物理机笔记本是不能与容器直接通信的,如果需要则需要通过宿主机器端口的代理。

2.4Docker的开机自启和容器自启

2.4.1 docker 服务的自启

# 开启 docker 自启动
systemctl enable docker.service
# 关闭 docker 自启动
systemctl disable docker.service
12345

2.4.2 容器的开机自启和关闭开机自启

# 开启容器自启动
docker update --restart=always 【容器名】
# 关闭容器自启动
docker update --restart=no【容器名】

注意:如果容器是运行状态则删除失败,需要停止容器才能删除

目录
相关文章
|
Java Linux 应用服务中间件
Docker的基本使用 2
Docker的基本使用
174 1
|
存储 安全 Linux
Docker 离线安装与基本使用
Docker 离线安装与基本使用
2590 0
Docker 离线安装与基本使用
|
Ubuntu Linux Docker
[笔记]Centos/Ubuntu/Windows/Docker 安装使用Aria2及Aria2基本使用
[笔记]Centos/Ubuntu/Windows/Docker 安装使用Aria2及Aria2基本使用
659 0
|
8月前
|
Java Linux Shell
Docker的基本使用
Docker的基本使用
76 0
|
10月前
|
运维 Linux Shell
Docker详解(五)——Docker基本使用
Docker详解(五)——Docker基本使用
46 0
|
关系型数据库 MySQL 应用服务中间件
Docker基本使用
初识Docker 什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。 在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题 应用部署的环境问题 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题: 依赖关系复杂,容易出现兼容性问题 开发、测试、生产环境有差异 例如一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。 Docker解决依赖兼
65 1
|
10月前
|
Ubuntu Linux Docker
Docker 安装与基本使用
Docker 安装与基本使用
141 0
|
Ubuntu NoSQL Linux
一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等
1、Docker的基本概念 2、常用的Docker命令 3、虚拟机安装Docker
|
Java Linux Docker
Spring Boot入门(二十六) 之 Docker的安装与基本使用
Spring Boot入门(二十六) 之 Docker的安装与基本使用
132 2
|
Ubuntu NoSQL Linux
Docker 安装与基本使用
Docker 安装与基本使用
593 0