Docker安装与常用命令

目录

前言

Docker的优势:

Docker能用来做的事情有:

安装

一,在Linux安装Docker

1.1 更新软件包到最新版本

1.2 安装软件包

1.3 添加Docker的yum仓库

1.4 启动Docker并设置开机启动项

1.5 验证docker

二,在Ubuntu安装Docker

1.1 系统安装需要满足官方要求

1.2 卸载旧版Docker安装新版Docker

1.3 更新apt包资源索引

1.4 安装docker依赖

1.5 添加Docker官方GPG密钥

1.6 添加软件源

1.7 安装

基础命令

1.1 查看版本信息

1.2 查看docker信息

1.3 查看主机上的镜像

1.4 搜索镜像

1.5 下载镜像

1.6 删除镜像

1.9 Docker容器开启或关闭

2.0 创建docker容器并启动

2.1 容器进入命令操作

2.3 主机与Docker容器之间文件复制

2.4容器的备份与还原

2.5 RUN启动容器

-d 表示后台启动

--name nginx名称

-p 指定出入端口(内端口3443射映80)

2.6 数据卷挂载

Docker网络

查看Docker容器网络配置-CSDN博客

前言

Docker容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上(包括流行的Linux机器、windows机器),也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

当然这是百度词条上说的,简单明了的说就是提供一个虚拟化为了我们方便部署服务。

Docker的优势:

1、更高效的利用系统资源;

2、更快速的启动时间;

3、一致的运行环境;

4、持续支付和部署;

5、更轻松的迁移;

6、更轻松的维护和拓展。

Docker能用来做的事情有:

1、可以快速搭建开发环境;

2、可以将运行环境和配置放在代码中并部署;

3、可以使用docker-compose来模拟生产环境;

4、进行自动测试;

5、使用docker镜像进行自我部署等等。

安装

一,在Linux安装Docker

1.1 更新软件包到最新版本

输入以下命令对linux进行更新,如果linux更新过慢可以更换阿里云源在进行更新。

sudo yum update -y
1.2 安装软件包

输入以下命令安装几个包,“-y”表示在安装过程中省略手动确认的安装步骤(如图1)。

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
图1
1.3 添加Docker的yum仓库

首先添加阿里云yum仓库

#设置阿里云镜像源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

安装Docker

#安装 Docker-CE  ce 表示Docker社区版
sudo yum install -y docker-ce docker-ce-cli containerd.io
1.4 启动Docker并设置开机启动项

##启动docker

sudo systemct start docker

##查看docker状态(如图2)可以简单判断docker是否安装成功如图出现”active“表示已经启动

sudo systemctl status docker

##设置开机启动可以省去linux每次开机多需要输入命令启动

sudo systemctl enable docker

图2
1.5 验证docker

输入以下命令出现如图3表示成功安装。

图3

二,在Ubuntu安装Docker

1.1 系统安装需要满足官方要求

为了安装Docker,你需要以下的系统配置。

Artful 17.10 (Docker CE 17.11 Edge and higher only)
Xenial 16.04 (LTS)
Trusty 14.04 (LTS)
Docker CE is supported on Ubuntu on x86_64, armhf, s390x (IBM Z), and ppc64le (IBM Power) architectures.
ppc64le and s390x limitations: Packages for IBM Z and Power architectures are only available on Ubuntu Xenial and above.

1.2 卸载旧版Docker安装新版Docker

卸载旧版docker

sudo apt-get remove docker docker-engine docker.io
1.3 更新apt包资源索引

更新软件包

sudo apt-get update
1.4 安装docker依赖

还需要安装一些依赖包用于docker成功安装操作

sudo apt-get install ca-certificates curl gnupg lsb-release
1.5 添加Docker官方GPG密钥

执行以下命令来添加Docker官方的GPG密钥:

sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
1.6 添加软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
1.7 安装
sudo apt-get install docker-ce docker-ce-cli containerd.io

基础命令

1.1 查看版本信息
docker version   ##如图4
图4
1.2 查看docker信息
docker info
1.3 查看主机上的镜像

我们看到这里有两个镜像以及镜像ID,大小,创建时间。

# 解释
REPOSITORY   镜像的仓库源
TAG                   镜像的标签
IMAGE ID          镜像的ID
CREATED         镜像的创建时间
SIZE                  镜像的大小
docker images

1.4 搜索镜像

搜索nginx镜像

docker search nginx
1.5 下载镜像

这里我下载nginx镜像如图5。

# 下载镜像 docker pull 镜像名[:tag]

docker pull nginx
图5

但我们需要下载指定镜像版本如下载mysql:8.0

docker pull mysql:8.0
1.6 删除镜像

删除刚才拉去的nginx镜像先查看docker镜像,再通过ID进行删除如图6。

docker images

docker rmi -f e4720093a3c1   ##卸载镜像
图6
# docker rmi -f 镜像id                                    # 删除指定的镜像
# docker rmi -f 镜像id  id   。。。                   # 删除多个镜像

1.8 查看运行镜像

docker ps
图7
1.9 Docker容器开启或关闭
##启动id为e4720093a3c1的镜像
docker start e4720093a3c1

##停止id为e4720093a3c1的镜像
docker stop e4720093a3c1

##查看所有运行容器
docker ps -a                 

##强制停止进程
docker kill e4720093a3c1
2.0 创建docker容器并启动

创建一个新的容器并运行一个命令

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

  • -d: 后台运行容器,并返回容器ID;

  • -i: 以交互模式运行容器,通常与 -t 同时使用;

  • -P: 随机端口映射,容器内部端口随机映射到主机的端口

  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

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

  • --name="nginx-lb": 为容器指定一个名称;

  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

  • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

  • -h "mars": 指定容器的hostname;

  • -e username="ritchie": 设置环境变量;

  • --env-file=[]: 从指定文件读入环境变量;

  • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

  • -m :设置容器使用内存最大值;

  • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

  • --link=[]: 添加链接到另一个容器;

  • --expose=[]: 开放一个端口或一组端口;

  • --volume , -v: 绑定一个卷

这里我在菜鸟教程讲的更佳:

使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

docker run --name mynginx -d nginx:latest

使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。

docker run -P -d nginx:latest

使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。

docker run -p 80:80 -v /data:/data -d nginx:latest

绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。

$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash

使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

runoob@runoob:~$ docker run -it nginx:latest /bin/bash
root@b8573233d675:/# 
2.1 容器进入命令操作

我们安装一个centos容器需要再里面执行命令。

docker exec -it 容器id /bin/bash

##解释

-i        即使没有附加也保持 STDIN 打开

-t        进入容器的 CLI 模式
docker exec -it e4720093a3c1 /bin/bash
2.3 主机与Docker容器之间文件复制

我们把主机上的“/home/demo.txt”复制到Docker容器ID为e4720093a3c1的home目录上。

docker cp /home/demo.txt e4720093a3c1:/home/

把Docker容器上的文件" demo.txt "复制到主机上。

docker cp e4720093a3c1:/home/demo.txt /home
2.4容器的备份与还原

比如A主机上运行容器需要迁移到B主机上

我们先导出容器ID是e4720093a3c1打包为tar压缩包 

docker export e4720093a3c1 > /home/centos.tar

我们再通过scp命令复制到B主机

scp /home/centos.tar root@10.22.11.22:/home

再到B主下运行

cat /home/centos.tar | docker import - centos:demo

我们还需要运行容器

docker run [选项] 镜像名/镜像id -d
2.5 RUN启动容器

如我们启动nginx

 docker run -d --name nginxdemo -p 3443:80 nginx
-d 表示后台启动
--name nginx名称
-p 指定出入端口(内端口3443射映80)
2.6 数据卷挂载

数据卷挂载可以理解为你建立一个局域网共享你的帅照A主机和B主机都可以看到你的照片同时也可以删除你的帅照或者上传一些他们的照片。

主要是解决主机文件与Docker容器之间的共享

##语法

docker run [--rm] [--name <容器名称>] [-v <本机文件夹路径>:<容器文件夹路径>] <镜像名称>

##        --rm 使得容器为一次性容器,程序运行结束后容器退出并销毁。

##        --name <容器名称> 是给容器命名不填自动生成。

##        -v 进行数据卷挂载,这是长期挂载。

##        -w 指定容器的 /usr/src/myapp 目录为工作目录。

如将主机中当前目录下的 demo.py 挂载到容器的 /usr/src/demo 也就是在docker的python容器运行demo.py.

docker run  -v $PWD/demo:/usr/src/myapp  -w /usr/src/demo python:3.5 python demo.py 

Docker网络

查看Docker容器网络配置-CSDN博客

好啦docker还有很多新玩法以后再出!最好学习方法就是去看官方手册。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值