docker 信息命令
查看docker概要信息
docker info
查看docker帮助文档
docker --help
3.1 镜像相关命令
查看镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 13 months ago 13.3kB
解释:
REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
搜索镜像
docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos DEPRECATED; The official build of CentOS. 7375 [OK]
解释:
NAME:仓库名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的
拉取镜像
拉取镜像就是从中央仓库中下载镜像到本地
docker pull centos:centos7
删除镜像
按镜像ID删除镜像
docker rmi 镜像ID
删除所有镜像
docker rmi `docker images -q`
3.2 容器相关命令
查看容器
查看正在运行的容器
docker ps
查看所有容器
docker ps –a
查看最后一次运行的容器
docker ps –l
查看停止的容器
docker ps -f status=exited
创建与启动容器
创建容器命令:docker run
创建容器常用的参数说明:
-i, --interactive Keep STDIN open even if not attached
-t, --tty Allocate a pseudo-TTY
--name string Assign a name to the container
-d, --detach Run container in background and print container ID
-p, --publish list Publish a container's port(s) to the host
前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
-v, --volume list Bind mount a volume
表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。
交互式方式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
如:
docker run -it --name=centos-test centos:centos7 /bin/bash
退出当前容器
exit
守护式方式创建容器:
docker run -di --name=容器名称 镜像名称:标签
如:
docker run -di --name='centos-test1' centos:centos7
进入运行的容器:
docker exec -it 容器名称 (或者容器ID) /bin/bash
进入容器正在使用的命令行
docker attach 容器id
停止容器:
docker stop 容器名称(或者容器ID)
启动容器:
docker start 容器名称(或者容器ID)
文件拷贝
docker cp 需要拷贝的文件或目录 容器名称:容器目录
docker cp ./hello.log 362edfb8a205:/root/test
也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
删除容器
docker rm 容器名称(容器ID)
目录挂载
创建容器时,通过-v 可将宿主与容器目录映射,可实现文件共享
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7
如果你共享的是多级的目录,可能会出现权限不足的提示。这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题
查看容器IP地址
我们可以通过以下命令查看容器运行的各种数据
docker inspect 容器名称(容器ID)
也可以直接执行下面的命令直接输出IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
查看容器日志
docker logs -f -t 容器id
查看容器进程
docker top 容器id
配置镜像源
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com"
]
docker network
列出网络
docker network ls
NETWORK ID NAME DRIVER SCOPE
4226a23e9f30 bridge bridge local
868283bd1abb host host local
691329a83d43 none null local
none 只有一个回环网卡,没有任何的网络通信能力
host 与宿主机共用一块网卡
bridge 利用虚拟路由器进行网络通信
创建网络
docker network create test_network
查看指定网络信息
docker network inspect test_network
删除网络
docker network rm test_network
启动容器时指定network
docker run --name contain1 --network=网络名 -it 镜像
4 应用部署
部署kafka
拉取kafka镜像
docker search kafka
docker pull bitnami/kafka
拉取zookeeper镜像
docker search zookeeper
docker pull zookeeper
创建zookeeper容器
docker run -d --name zk -e ALLOW_ANONYMOUS_LOGIN=yes bitnami/zookeeper:latest
docker run -d --name kf -p 9092:9092 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_CFG_ZOOKEEPER_CONNECT=172.17.110.161:2181 -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 bitnami/kafka:latest
安装postgreSQL
docker search postgres
docker pull postgres
docker run --name postgresql --privileged -e POSTGRES_PASSWORD=123456 -p 15433:5432 -d postgres
通过dbeaver连接
URL: jdbc:postgresql://localhost:15433/postgres
用户:postgres
密码:123456
部署flink
部署clickhouse
拉取镜像
$ sudo docker pull yandex/clickhouse-server
$ sudo docker pull yandex/clickhouse-client
启动ck服务器
$ mkdir -p /home/nb/data/clickhouse
$ sudo docker run -d --name xf-clickhouse-server \
-p 8123:8123 -p 9009:9009 -p 9090:9000 \
--ulimit nofile=262144:262144 \
--volume=/home/nb/data/clickhouse:/var/lib/clickhouse yandex/clickhouse-server
进入容器
$ sudo docker exec -it xf-clickhouse-server /bin/bash
安装Vi编辑器
root@b76fe065654f:/# apt-get update
root@b76fe065654f:/# apt-get install vim -y
修改配置
root@ee9afed6f02c:/# vi /etc/clickhouse-server/users.xml
<password>xiefei123456</password>
native连接ck
root@b76fe065654f:/# clickhouse-client -u default --password xiefei123456
b76fe065654f :) show databases;