docker

goer ... 2022-01-14 Study
  • Docker
  • Hack
大约 4 分钟

docker

[toc]

# Docker

Docker 是一个开源的应用容器引擎 go语言

# 1. 安装

windows: 不建议在windows上运行,下载安装包就ok

linux和uinx:直接包管理工具安装

// 1. 启动服务
sudo systemctl start docker  //密码

// 2. 查看服务状态
sudo systemctl status docker  

// 3.停止服务
sudo systemctl stop docker
1
2
3
4
5
6
7
8

# 2.常见问题

主要的问题

docker用户组

这样该用户就拥有docker功能了

// 1.创建docker用户组

sudo groupadd docker

//2.将用户添加到docker用户组
sudo usermod -aG docker ${USER_NAME}

//3.重启docker
sudo systemctl restart docker
1
2
3
4
5
6
7
8
9

docker 启动失败 ,容器加速器,拉取镜像更快速

Failed to start Docker Application Container Engine. //查看服务提示

pull 拉起速度很慢,服务器在国外

// 配置文件

/etc/docker/daemon.json
//修改源,这里是中科大源   或直接去源查看配置方法
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]  //不要空格
}
1
2
3
4
5
6
7

# 3.基本命令

常用的命令

命令前加 **docker:** Docker 的二进制执行文件。

  1. search (搜索)

    //查看我们可以使用的镜像 docker search 镜像

    docker search hello-wrold   //也可以去dockerlab 搜索
    
    1
  2. run(运行)

    // 运行容器

    docker run 容器 镜像

    docker run hello-world
    
    // 很多参数  交互式
    //每次run产生字符串  这个是容器id  唯一的
    
        -t: 在新容器内指定一个伪终端或终端。
    
        -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
    
    	-d:后台模式,
    	后面还会用到一些常用的参数qaq
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
  3. ps(进程)

    // 查看进程,运行中的容器

    docker ps

    docker ps 
    
    docker ps -a  // 查看所有运行的历史
    
    1
    2
    3
  4. logs(日志)

    // 查看日志

    docker logs 容器id

    docker logs dafdsfas //查看容器日志
    
    1
  5. rm (删除)

    //删除容器和镜像

    docker rm

    // 删除容器
    docker rm 容器id
    
    // 删除镜像
    docker rmi 镜像id
    
    1
    2
    3
    4
    5
  6. stop(停止)

    // 停止容器和镜像

    docker stop 容器id

    docker stop sdafds
    
    1

# 4. 镜像和容器

现在我们就可以拉取任意的镜像了系统、软件、漏洞平台

  1. hello-world
// 能看到 hello-wrold 说明成功了

docker run hello-wrold
1
2
3
  1. ubuntu /centos linux操作系统
docker sharch ubuntu:latest   // latest标签 最新的

docker pull ubuntu:latest   //拉取镜像

docker run -itd --name ubuntu-test ubuntu 
// -it 交互式命令
// -d 后台运行
// --name 容器的名称
//  ubuntu 镜像 从这个镜像创建容器

docker exec -ti ubuntu-test /bin/bash 
// exec 进入容器
// /bin/bash 容器的shell


docker ps    //查看进程

docker ps -a   //查看所以历史

docker rm 容器id // 删除容器id下次就直接用这个容器名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  1. nginx

nginx : 高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 。

docker search nginx 

docker pull nginx:lastes

docker run --name nginx-test -p 8080:80 -d nginx  //运行容器
// -p 将本机的  8080  映射到容器的  80  端口    

浏览器输入地址和8888端口就可以看到nginx欢迎界面
1
2
3
4
5
6
7
8
  1. node

Chrome V8 引擎的 JavaScript 运行环境 让 JavaScript 运行在服务端的开发平台。

docker search node 

docker pull node:latest

docker run -itd --name node-test node  //运行容器

docker exec -it node-test /bin/bash   //进入容器
1
2
3
4
5
6
7
  1. php

php:服务端脚步语言

//搜索安装 就不说了吧


// 部署nginx + php
docker run --name  myphp-fpm -v ~/nginx/www:/www  -d php:5.6-fpm  //运行容器
// --name 容器名称
// -v 将主机的  ~/nginx/www  挂载到容器的 /www

//额,有点蒙
1
2
3
4
5
6
7
8
9
  1. mysql

最受欢迎的开源数据库。凭借其可靠性、易用性和性能

// 搜索安装

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
// MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。 

docker exec -it mysql-test /bin/bash
1
2
3
4
5
6
  1. redis

Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 的 NoSQL 数据库,并提供多种语言的 API。

// 搜索安装
docker run -itd --name redis-test -p 6379:6379 redis

docker exec -it redis-test /bin/bash
// redis-cli 连接测试使用 redis 服务。
redis-cli 
set test 1
1
2
3
4
5
6
7
  1. mongo

MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序。

// 搜索安装

docker run -itd --name mongo -p 27017:27017 mongo --auth
//--auth:需要密码才能访问容器服务。

// 连接
docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
>  db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
1
2
3
4
5
6
7
8
9
10
11
  1. apache

apache : 开源网络服务器




1
2
3
  1. beef

beef

docker search beef 

docker pull janes/beef

docker run -dp 2333:2333 janes/beef  //-p映射端口

127.0.0.1:2333/ui/panel
1
2
3
4
5
6
7