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
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
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"] //不要空格
}
2
3
4
5
6
7
# 3.基本命令
常用的命令
命令前加
**docker:** Docker 的二进制执行文件。
search (搜索)
//查看我们可以使用的镜像 docker search 镜像
docker search hello-wrold //也可以去dockerlab 搜索
1run(运行)
// 运行容器
docker run 容器 镜像
docker run hello-world // 很多参数 交互式 //每次run产生字符串 这个是容器id 唯一的 -t: 在新容器内指定一个伪终端或终端。 -i: 允许你对容器内的标准输入 (STDIN) 进行交互。 -d:后台模式, 后面还会用到一些常用的参数qaq
1
2
3
4
5
6
7
8
9
10
11ps(进程)
// 查看进程,运行中的容器
docker ps
docker ps docker ps -a // 查看所有运行的历史
1
2
3logs(日志)
// 查看日志
docker logs 容器id
docker logs dafdsfas //查看容器日志
1rm (删除)
//删除容器和镜像
docker rm
// 删除容器 docker rm 容器id // 删除镜像 docker rmi 镜像id
1
2
3
4
5stop(停止)
// 停止容器和镜像
docker stop 容器id
docker stop sdafds
1
# 4. 镜像和容器
现在我们就可以拉取任意的镜像了
系统、软件、漏洞平台
- hello-world
// 能看到 hello-wrold 说明成功了
docker run hello-wrold
2
3
- 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下次就直接用这个容器名
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
- 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欢迎界面
2
3
4
5
6
7
8
- 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 //进入容器
2
3
4
5
6
7
- php
php:服务端脚步语言
//搜索安装 就不说了吧
// 部署nginx + php
docker run --name myphp-fpm -v ~/nginx/www:/www -d php:5.6-fpm //运行容器
// --name 容器名称
// -v 将主机的 ~/nginx/www 挂载到容器的 /www
//额,有点蒙
2
3
4
5
6
7
8
9
- 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
2
3
4
5
6
- 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
2
3
4
5
6
7
- 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')
2
3
4
5
6
7
8
9
10
11
- apache
apache : 开源网络服务器
2
3
- beef
beef
docker search beef
docker pull janes/beef
docker run -dp 2333:2333 janes/beef //-p映射端口
127.0.0.1:2333/ui/panel
2
3
4
5
6
7