官方文档 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
评论区