侧边栏壁纸
博主头像
GG's Blog博主等级

行动起来,活在当下

  • 累计撰写 23 篇文章
  • 累计创建 12 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

docker 笔记

mrqinzh
2024-06-10 / 0 评论 / 0 点赞 / 13 阅读 / 4417 字

官方文档 https://docs.docker.com/compose/

You can also locate the settings.json file at ~/Library/Group Containers/group.com.docker/settings.json.

docker info # 查看docker信息

docker pull mysql # 拉取mysql,不带版本号就是最新的

docker ps -a # 查看docker进程

CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS                     PORTS     NAMES
8dbc5f6cb071   mysql:8.0   "docker-entrypoint.s…"   19 minutes ago   Exited (0) 3 minutes ago             mysql8
fbaa02b4159f   mysql       "docker-entrypoint.s…"   27 minutes ago   Created                              mysqlInstance1

docker stop container_id # 停止
docker start container_id # 启动

docker rename rmqnamesrv rocketmq # 重命名容器

docker run -d --name --p 9180:80 nginx nginx # 指定名称启动镜像、右边的是里面的端口,左边的是映射到宿主机的端口

docker rmi image_id... # 删除镜像 可以跟多个
docker rm container_id... # 删除容器

docker exec -ti container_id /bin/bash # 运行容器中命令
docker exec -it mysql /bin/bash

# 要获取所有容器名称及其IP地址
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

批量操作

# 1、docker 批量停止运行中的容器
docker stop $(docker ps -a | grep "xxx" | awk '{print $1}')
docker stop 停止容器
$() 返回在括号内运行脚本的结果
docker ps -a 列出所有容器的docker
| grep “xxx” 管道上一个命令的结果,grep以搜索包含字符串xxx的行
| awk '{print $1}' 管道的结果grep搜索到的awk命令,该命令被告知仅打印在第1列,其是容器的ID的值

# 2、传递
docker ps | grep "xxx"  | awk '{print $1}' | xargs docker stop
docker ps 用于列出所有正常运行的容器
| grep filter 将上一命令的结果通过管道传给过滤器,过滤条件为包含xxx关键字
| awk '{print $1}' 将上一命令的结果通过管道传给awk,  awk '{print $1}' 打印第一列的数据,也就是容器ID
| xargs docker stop 将上一命令的结果通过管道传给xargs, xargs 将参数传给docker stop,然后停止这些容器


# (awk '{print $1}' print $1 因为第一行是container_id)
mrqinzh@192 ~ % docker stop $(docker ps | awk '{print $1}')
1cd67884c0b0
46e397cba3bc
2f44b73ff71b

mac 设置查看容器内部ip脚本

function docker_ip() {
    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $1
}
function dockeriplist() {
    docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
}

docker_ip <container-ID>

部署

部署rocketMQ

docker search rocketmq

docker pull apache/rocketmq

docker run -d -p 9876:9876 --name mqnamesr -it apache/rocketmq ./mqnamesrv
docker run -it --net=host --mount source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876

部署oracle

docker run -d -p 1521:1521 --name oracle11g deepdiver/docker-oracle-xe-11g

sqlplus system/oracle

部署sqlserver

docker pull mcr.microsoft.com/mssql/server:2022-latest

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=qzh@123456" \
   -p 1433:1433 --name sql1 \
   -d \
   mcr.microsoft.com/mssql/server:2022-latest

docker exec -ti sql1 /bin/bash

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'qzh@123456'

部署redis

docker search redis
docker pull redis

docker run -d --name redis -p 6379:6379 redis
docker exec -it redis /bin/bash

redis-cli
config set requirepass 123456
auth 123456

mac 使用colima 替换 docker desktop


brew install colima

# 启用
colima start
# 停止
colima stop

# Colima 启动的虚拟机默认是 2CPU、2GiB 内存 和 60GiB 存储。可以在创建时通过 --cpu 、--memory 和 --disk 来分配更多资源
colima start --cpu 4 --memory 16

0

评论区