Docker 基本操作

Docker介绍

Docker 是一个开源的软件部署解决方案。
Docker 也是轻量级的应用容器框架。
Docker 可以打包、发布、运行任何的应用。
Docker 就像一个盒子,里面可以装很多物件,如果需要某些物件,可以直接将该盒子拿走,而不需要从该盒子中一件一件的取。
Docker 是一个客户端-服务端(C/S)架构程序。
客户端只需要向服务端发出请求,服务端处理完请求后会返回结果。

Docker 包括三个基本概念:

镜像(Image)

Docker的镜像概念类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。
例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了MySQL或用户需要的其它应用程序。

容器(Container)

Docker容器是由Docker镜像创建的运行实例,类似VM虚拟机,支持启动,停止,删除等。
每个容器间是相互隔离的,容器中会运行特定的应用,包含特定应用的代码及所需的依赖文件。

仓库(Repository)

Docker的仓库功能类似于Github,是用于托管镜像的。

Docker安装

1.安装Docker CE
ubuntu下载地址:https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/arm64/

下图红框为系统版本代号,注意选择自己的版本

在这里插入图片描述

centos下载地址(链接中7表示版本,注意选择自己的版本):https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

官方安装文档https://docs.docker.com/engine/install/

本人手动安装示例(rpm包安装方式
centos安装,还需要安装其他rpm依赖包
在这里插入图片描述

我是将安装包都传到/opt目录下执行安装的

yum install ./containerd.io-1.4.3-3.1.el7.x86_64.rpm ./docker-ce-rootless-extras-20.10.5-3.el7.x86_64.rpm ./docker-ce-20.10.5-3.el7.x86_64.rpm ./docker-ce-cli-20.10.5-3.el7.x86_64.rpm

ubuntu 安装 (我是将安装包都传到/opt目录下执行安装的):

dpkg -i ./containerd.io_1.4.3-1_amd64.deb docker-ce-cli_20.10.5~3-0~ubuntu-bionic_amd64.deb docker-ce_20.10.5~3-0~ubuntu-bionic_amd64.deb docker-ce-rootless-extras_20.10.5~3-0~ubuntu-bionic_amd64.deb

--------------------------------------------华丽的分割线-------------------------------

启动与停止

安装完成Docker后,默认已经启动了docker服务。

启动docker
systemctl start docker
加入开机启动
systemctl enable docker
查看是否加入开机启动
systemctl list-units --type=service

目录

资源目录:/var/lib/docker/image
配置文件目录:/etc/docker

docker 设置国内镜像源

创建或修改 /etc/docker/daemon.json 文件,修改为如下形式

vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
systemctl restart docker.service
国内加速地址有:

Docker中国区官方镜像
https://registry.docker-cn.com

网易
http://hub-mirror.c.163.com
 
ustc 
https://docker.mirrors.ustc.edu.cn
 
中国科技大学
https://docker.mirrors.ustc.edu.cn

阿里云容器  服务
https://cr.console.aliyun.com/

Docker镜像操作

1.镜像列表

$ sudo docker image ls
* REPOSITORY:镜像所在的仓库名称 
* TAG:镜像标签 
* IMAGEID:镜像ID 
* CREATED:镜像的创建日期(不是获取该镜像的日期) 
* SIZE:镜像大小

查询镜像资源:

 docker search nginx

2.从仓库拉取镜像

官方镜像

$ sudo docker image pull 镜像名称 或者 sudo docker image pull library/镜像名称
$ sudo docker image pull ubuntu 或者 sudo docker image pull library/ubuntu
$ sudo docker image pull ubuntu:16.04 或者 sudo docker image pull library/ubuntu:16.04

个人镜像

$ sudo docker image pull 仓库名称/镜像名称

3.删除镜像

$ sudo docker image rm 镜像名或镜像ID
$ sudo docker image rm hello-world
$ sudo docker image rm fce289e99eb9

镜像改名:

docker tag 需要更改的镜像名:latest 改后的镜像名:latest

4. Docker容器操作
1.容器列表

查看正在运行的容器

$ sudo docker container ls

#查看所有的容器

$ sudo docker container ls --all

2.创建容器

$ sudo docker run [option] 镜像名 [向启动容器中传入的命令]
常用可选参数说明:
* -i 表示以《交互模式》运行容器。
* -t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
* --name 为创建的容器命名。
* -v 表示目录映射关系,即宿主机目录:容器中目录。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。 
* -d 会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)* -p 表示端口映射,即宿主机端口:容器中端口。
* --network=host 表示将主机的网络环境映射到容器中,使容器的网络与主机相同。

3.交互式容器

$ sudo docker run -it --name=ubuntu1 ubuntu /bin/bash
在容器中可以随意执行linux命令,就是一个ubuntu的环境。
当执行 exit 命令退出时,该容器随之停止。

4.守护式容器

#开启守护式容器

$ sudo docker run -dit --name=ubuntu2 ubuntu

#进入到容器内部交互环境

$ sudo docker exec -it 容器名或容器id 进入后执行的第一个命令
$ sudo docker exec -it ubuntu2 /bin/bash
如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。
在容器内部执行 exit 命令退出时,该容器也随之停止。

5.停止和启动容器

#停止容器

$ sudo docker container stop 容器名或容器id

#kill掉容器

$ sudo docker container kill 容器名或容器id

#启动容器

$ sudo docker container start 容器名或容器id

6.删除容器

正在运行的容器无法直接删除。

$ sudo docker container rm 容器名或容器id

7.容器制作成镜像

为保证已经配置完成的环境可以重复利用,我们可以将容器制作成镜像。
#将容器制作成镜像

$ sudo docker commit 容器名 镜像名

镜像打包备份

$ sudo docker save -o 保存的文件名 镜像名

镜像解压

$ sudo docker load -i 文件路径/备份文件

容器导出

docker  export 容器id  >  文件名.tar

容器导入

cat  文件名.tar  | docker import - 镜像用户/镜像名:版本号
或
docker import 文件名.tar 镜像用户/镜像名:版本号

搭建私有仓库

获取私有库环境镜像

 docker image pull registry

更改配置文件

vim /etc/docker/daemon.json

追加如下参数,并修改IP

"insecure-registries":["49.235.69.89:5000"]

上传到仓库(容易与宿主机网络需要联通)

docker tag ubuntu:18.04 49.235.69.89:5000/ubuntu:18.04
docker push 49.235.69.89:5000/ubuntu:18.04

拉取

docker pull 49.235.69.79:5000/ubuntu:18.04

数据卷管理

宿主机/data目录和Ubuntu镜像中的/opt映射,可以互相传递数据

docker run -it -v /data:/opt ubuntu:18.04 /bin/bash

端口映射:

-P     随机使用一个端口映射
-p     使用规定的端口或者IP加端口进行映射,

Dockerfile

将执行流程封装到此文件中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值