Docker笔记

1.安装docker

https://blog.csdn.net/wangmx1993328/article/details/81671880

1、uname ‐r 查看内核版本
    Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
    Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
2、安装docker 
    yum install docker 
3、输入y确认安装 
4、启动docker
 [root@localhost ~]# systemctl start docker
    启动后可以查看一下版本
 [root@localhost ~]# docker ‐v 
 Docker version 1.12.6, build 3e8e77d/1.12.6 
5、开机启动docker
 [root@localhost ~]# systemctl enable docker 
Created symlink from /etc/systemd/system/multi‐user.target.wants/docker.service to  /usr/lib/systemd/system/docker.service. 
6、停止docker 
systemctl stop docker

2.常用命令

  • 搜索镜像
docker search 关键词
  #eg: docker search redis
  • 拉取镜像
docker pull 镜像名:tag
#(:tag是可选的,tag表示标签,多为软件的版本,默认 是latest)
# eg:     docker pull nginx(docker pull nginx:1.17.1)
  • 查询所有镜像
docker images
  • 删除镜像
docker rmi 镜像id
  • 查询所有容器
docker ps
  • 查询启动的容器
docker ps -a
  • 删除容器
docker rm 容器id
  • 开启容器
docker start 容器id
  • 关闭容器
docker stop 容器id
  • 关闭所有容器
docker stop $(docker ps -a -q)
  • 移除所有容器
docker rm `docker ps -a -q`
  • 应对挂载权限拒绝
--privileged=true
  • 将容器保存为镜像
docker commit 容器名 镜像名
eg:docker commit nginx nginx_img
  • 镜像备份:
docker save -o xxx.tar xxx镜像
eg: docker save -o nginx.tar nginx
  • 镜像的恢复
可以通过以下指令将上面的备份镜像还原
docker load -i nginx.tar
  • 宿主机向容器拷贝文件
docker cp /ik-analyzer cc218e657b3f:/usr/share/elasticsearch/plugins
  • 容器向宿主机拷贝文件
docker cp cc218e657b3f:/usr/share/elasticsearch/plugins   /ik-analyzer
  • 启动容器后再设置开机启动(xxx为镜像id)
docker update --restart=always xxx

3.进入容器

3.1 查看容器id

docker ps

3.2 进入指定容器(以Nginx为例)

docker exec -it 容器id /bin/bash 

-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN(标准输入) 打开,以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

image.png

3.3查看容器内容

ls - l


容器内容

3.4查看配置文件

cd etc/nginx/conf.d/
image.png

3.5退出镜像

exit


image.png

4. docker 挂载方式安装nginx举例

4.0 拉取镜像

docker pull nginx

4.1创建挂载目录

mkdir -p /data/nginx/{conf,conf.d,html,logs}

4.2以挂载方式启动容器

docker run --privileged=true --name=nginx81 -p 81:80 -v /data/nginx/conf:/etc/nginx -v /data/nginx/html/:/usr/share/nginx/html -d nginx

5.docker中安装nginx+fastdfs镜像

参考:https://blog.csdn.net/tttzzztttzzz/article/details/86709318
https://www.cnblogs.com/yanwanglol/p/9860202.html

docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=192.168.43.128 -e WEB_PORT=80 -v ${HOME}/fastdfs:/var/local/fdfs -v /data/nginx/conf.d/default.conf:/usr/local/nginx/conf/nginx.conf.default -v /data/nginx/html/:/usr/local/nginx/html registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs

6.docker安装ElasticSearch镜像

#docker run -d --restart=always --privileged=true -v /data/elasticsearch/config:/usr/share/elasticsearch/config -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name elasticsearch 5acf0e8da90b
docker run --restart=always  --name elasticsearch -d -e ES_JAVA_OPTS="-Xms256m -Xmx256m"  -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 01e5bee1e059

指令说明:
1.-e ES_JAVA_OPTS="-Xms256m -Xmx256m" :如果不指定的话会es会占用比较大的内存
2.-p 9200:9200 -p 9300:9300 :9200为es端口号,9300为集群通信端口号
3.5acf0e8da90b : 镜像id
安装后测试,出现以下结果代表安装成功(ip写自己的!!)

图片.png

6.1 kibana下载地址

https://www.elastic.co/cn/downloads/past-releases#kibana

kibaba的docker镜像安装

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.176.111:9200 -p 5601:5601  -d kibana:7.4.2

6.2 elasticsearch-analysis-ik下载地址

https://github.com/medcl/elasticsearch-analysis-ik/releases

6.3 安装elasticsearch-head

https://www.cnblogs.com/szwdun/p/10663813.html

6.4 Elasticsearch 配置用户名和密码

https://blog.csdn.net/weixin_43315211/article/details/99677072
https://blog.csdn.net/qq_29553063/article/details/95014006

6.5 elasticsearch-head 以密码访问

修改配置文件elasticsearch.yml,增加
http.cors.allow-headers: Authorization

访问head时,url如下所示:
http://192.168.100.100:9100/?auth_user=elastic&auth_password=changeme

6.6 Elasticsearch 6.x head 请求头 Content-Type 设置

https://blog.csdn.net/A_Story_Donkey/article/details/84135475

7.docker安装rabbitmq镜像(docker pull rabbitmq:management)

docker run -d  --restart=always --name rabbitmq -p 5672:5672 -p 15672:15672 e58249ecc163

说明:
-p 15672:15672 图形化界面访问的端口号

8.docker安装redis

docker run -d --restart=always --name redis -p 6379:6379 redis --requirepass "mypassword"

9.docker安装MongoDB

docker run --restart=always --privileged=true -p 27017:27017 -v /tmp/db:/data/db -d mongo

启动MongoDB容器后,其配置文件中未只允许本地访问,我们需要修改为允许远程访问

#进入容器
docker exec -it f9ddebfbd1f1 /bin/bash

#更新源
apt-get update
# 安装 vim
apt-get install vim
# 修改 mongo 配置文件
vim /etc/mongod.conf.orig

#注释掉`# bindIp: 127.0.0.1` 或者改成`bindIp: 0.0.0.0` 即可开启远程连接
进入容器后在执行了mongo指令后就可以使用MongoDB的常用指令了
mongo

创建用户

# 进入 admin 的数据库
use xc_cms
# 创建管理员用户
db.createUser(
   {
     user: "root",
     pwd: "root",
     roles: [ { role: "dbAdmin", db: "xc_cms" } ]   
   }
 )
 # 创建有可读写权限的用户. 对于一个特定的数据库, 比如'demo'
 db.createUser({
     user: 'test',
     pwd: '123456',
     roles: [{role: "read", db: "demo"}]
 })

设定对用户认证

db.auth("root","root");

10.docker安装mysql

docker run -d  --restart=always --name=mysqldb -p 3306:3306 --env="MYSQL_ROOT_PASSWORD=root" centos/mysql-57-centos7

10.1 docker安装mysql实例,并新建用户和外网连接

一:
docker search mysql  查找mysql镜像

docker pull mysql  拉取镜像

docker images  查看已拉取的镜像
docker images |grep mysql   查看已拉取的镜像

docker ps  查看容器启动情况


使用mysql镜像
运行容器
docker run --name mysqlkaige -p 3309:3306 -e MYSQL_ROOT_PASSWORD=chenkai! -d  镜像id


#进入容器
docker exec -it mysql容器id bash

#登录mysql
mysql -u root -p 

#输入密码:chenkai!

#添加远程登录用户
CREATE USER 'kaidd'@'%' IDENTIFIED WITH mysql_native_password BY 'chenkai123!';
GRANT ALL PRIVILEGES ON *.* TO 'kaidd'@'%';

退出mysql: ctrl+d

退出容器: ctrl+P+Q

 

启动某个容器:docker start 容器id

停止某个容器:docker stop 容器id

11.docker安装logstash

https://blog.csdn.net/qq_42082701/article/details/98469545
https://blog.csdn.net/sgrrmswtvt/article/details/88813571

12.常见问题

容器中无法使用vim

1.更新来源
apt-get update(在docker里安装软件的时候报这个错误,是因为你用centos的镜像,需要用yum代替apt-get)
2.安装vim
apt-get install vim

image.png

3.docker中maven找不到本地依赖
https://www.cnblogs.com/yy-cola/p/9664598.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容

  • 《Docker从入门到实践》阅读笔记 原书地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo阅读 11,375评论 1 39
  • Docker简介 1、什么是容器(虚拟机通过中间层将一台或者多台虚拟机运行在物理硬件之上,容器直接运行在操作系统内...
    FangHao阅读 277评论 0 1
  • 我泡一杯咖啡 他们说不好 咖啡伤胃 红茶暖胃 哦 不如红茶泡咖啡 一口伤 一口暖 像你
    咖啡泡红茶阅读 291评论 0 0
  • 翻着鲸打卡看了一遍从加入行动营以后所有发的内容,看到自己一点点的进步,感概时间过得真快,一转眼就22天了,真希望时...
    沫沫杂谈阅读 220评论 0 4
  • 诗人_川阅读 79评论 0 2