基于centos7
启动/停止/重启docker
systemctl start/stop/restart docker
docker version
[root@localhost ~]# docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-63.git94f4240.el7.centos.x86_64
Go version: go1.9.4
Git commit: 94f4240/1.13.1
Built: Fri May 18 15:44:33 2018
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-63.git94f4240.el7.centos.x86_64
Go version: go1.9.4
Git commit: 94f4240/1.13.1
Built: Fri May 18 15:44:33 2018
OS/Arch: linux/amd64
Experimental: false
docker info
[root@localhost ~]# docker info
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 2
Server Version: 1.13.1
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: journald
Cgroup Driver: systemd
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: docker-runc runc
Default Runtime: docker-runc
Init Binary: /usr/libexec/docker/docker-init-current
containerd version: (expected: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1)
runc version: e9c345b3f906d5dc5e8100b05ce37073a811c74a (expected: 9df8b306d01f59d3a8029be411de015b7304dd8f)
init version: 5b117de7f824f3d3825737cf09581645abbe35d4 (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
seccomp
WARNING: You're not using the default seccomp profile
Profile: /etc/docker/seccomp.json
selinux
Kernel Version: 3.10.0-862.3.3.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 1
Total Memory: 974.6 MiB
Name: localhost
ID: T264:INRQ:GNYY:GRMM:BCQB:TTNT:2C2V:MI55:JXJ7:DO23:VY4B:UNSD
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Registries: docker.io (secure)
docker images
查看本地镜像
docker ps
查看运行中的docker容器
docker ps -a 查看所有容器,包括退出的。
查看某镜像启动日志
docker logs 镜像id
docker search tomcat
从镜像仓库搜索镜像
pull镜像
docker pull tomcat
启动/关闭/重启容器
docker start/stop/restart 容器id
运行容器-tomcat
docker run -d -p 8080:8080 tomcat
-d: 后台启动
-p: 端口映射
-P: 随机端口映射。docker run -d -P tomcat
进入容器
docker run -d -p 8080:8080 tomcat => 启动tomcat容器后,并没有进入容器。
- docker attach 容器id => 退出后会关闭容器(不推荐)
- docker exec -it 容器id bash
-i: interactive 交互的
-t: terminal 伪终端
bash: 这个参数必须带,或者写成/bin/bash也行
退出容器
exit
删除容器
docker rm 容器id1 容器id2
如果容器运行中,可以加-f强制删除:force
docker容器中没有vi/vim等命令
apt-get update
apt-get install vim
容器重命名
docker rename 原容器名 新容器名
本地复制文件到docker容器内
docker cp xxx containerId:/usr/share/elasticsearch/plugins
docker容器内复制文件到本地
docker cp containerId:/usr/share/elasticsearch/plugins/a.txt /root
elasticsearch踩坑
给/usr/share/elasticsearch/plugins下复制了一个ik分词器文件进去,然后elasticsearch容器重启失败,而不进入容器又不能做文件删除(但可以从里边cp文件到本地)。
docker貌似不提供:在不启动容器的情况下对容器内文件的删除操作。
于是本地全局搜索:find / -name xxx => 删除文件后elasticsearch正常启动。
/var/lib/docker/overlay2/0834dcb38f857e9a4d0638d90fe2965b94b49fd4f966516f326b43f164fdcb2b/diff/xxxxx
ik分词器
ik分词器的版本号要跟es完全一致[小版本号也要一致]
如果找不到对应版本号的ik分词器,可以修改plugin-descriptor.properties的版本号,这样能够正常启动es。
对于ik分词器建议是索引时使用ik_max_word将搜索内容进行细粒度分词,搜索时使用ik_smart提高搜索精确性
输入:
{
"analyzer": "ik_max_word", -- 最多分词数量
"text": "我是中国人"
}
输出:
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "CN_CHAR",
"position": 0
},
{
"token": "是",
"start_offset": 1,
"end_offset": 2,
"type": "CN_CHAR",
"position": 1
},
{
"token": "中国人",
"start_offset": 2,
"end_offset": 5,
"type": "CN_WORD",
"position": 2
},
{
"token": "中国",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 3
},
{
"token": "国人",
"start_offset": 3,
"end_offset": 5,
"type": "CN_WORD",
"position": 4
}
]
}
======================
输入:
{
"analyzer": "ik_smart", -- 聪明的分词(比较精准,比较少)
"text": "我是中国人"
}
输出:
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "CN_CHAR",
"position": 0
},
{
"token": "是",
"start_offset": 1,
"end_offset": 2,
"type": "CN_CHAR",
"position": 1
},
{
"token": "中国人",
"start_offset": 2,
"end_offset": 5,
"type": "CN_WORD",
"position": 2
}
]
}
docker启动MySQL
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 id
docker exec -it id bash
bash-4.2$ mysql -h 127.0.0.1 -u root
Enter password:123456