docker

基于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容器后,并没有进入容器。

  1. docker attach 容器id => 退出后会关闭容器(不推荐)
  2. 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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容