MAC使用DOCKER常用命令

本文详细介绍了如何在Mac上安装Docker,包括使用Homebrew安装,解决连接问题,以及进行镜像拉取、启动容器(如MySQL、Redis、Nginx)、删除镜像和容器、停止/重启和进入容器的操作。特别针对M1芯片用户推荐了arm64v8版本。
摘要由CSDN通过智能技术生成

常用DOCKER功能

1 安装docker

  1. 官网下载桌面版本
  2. homebrew安装(brew版本为4.2.3)
brew install docker

通过这种方式安装docker在应用里是看不到对应docker软件的,当使用docker命令时会出现下面的提示

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

我是在网上搜了一个帖子传送门,然后运行了一下就好用了,具体什么原理不太清楚,如果有大佬知道还请指点一二!!非常感谢!!
运行内容如下

launchctl list | grep docker

运行后显示如下内容,有点不对劲,但是能用!

0	com.docker.helper

然后就可以拉取镜像等操作了。
后续可以通过orbstack软件启动软件。
在这里插入图片描述

2 拉取镜像并启动

可参考视频传送门

  1. 首先查看软件版本,显示的都是对应最新版本,如果想要旧版本,可以去docker官网找版本号下载;地址:以node为例
docker search mysql

如果是M1芯片的建议选择arm64v8/v8/mysql

  1. 选好版本后进行下载
docker pull arm64v8/mysql
  1. 下载成功后查看下载好的软件
docker images
  1. 启动容器(mysql和redis)
docker run -d -i -t [容器ID] /bin/bash
  1. mysql配置文件
    创建两个数据卷
docker volume create mysql_conf;
docker volume create mysql_data;

将配置文件通过orbstack软件复制到mysql_conf文件中
在这里插入图片描述
在这里插入图片描述

文件内容如下

[mysqld]
character-set-server=utf8
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
  1. 配置完成后,启动mysql
docker run -p 3306:3306 \
 --name mysql \
 -v mysql_data:/var/lib/mysql \
 -v mysql_conf:/etc/mysql/conf.d \
 --privileged=true \
 -e MYSQL_ROOT_PASSWORD=123456 \
 -d arm64v8/mysql
  1. 安装并配置成功后进入软件
docker exec -it mysql /bin/bash
  1. 登陆mysql
mysql -uroot -p123456

redis

  1. 下载redis
docker pull arm64v8/redis
  1. 启动redis
docker run -p 6379:6379 \
--name redis \
-v redis_data:/data \
-v redis_conf:/etc/redis/redis.conf \
-d arm64v8/redis \
redis-server /etc/redis/redis.conf

nginx

  1. 启动nginx
docker run -p 80:80 \
--name nginx \
-v /nginx/conf/nginx.conf:/var/lib/docker/volumes/nginx_conf \
-d nginx

访问127.0.0.1:80看是否能访问nginx,如果成功证明已经正常启动

  1. 配置文件挂载:在本地创建nginx配置文件的路径,然后将nginx的文件复制到此路径下
docker cp nginx:/etc/nginx/nginx.conf /Users/lx/settings/nginx
  1. nginx.conf 配置文件内容:

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    server {
        listen       9001;
        server_name  localhost;

	location ~ /hosp/ {           
	    	proxy_pass http://localhost:8201;
		}
	location ~ /cmn/ {           
	    	proxy_pass http://localhost:8202;
		}
	}
}

3 删除镜像(卸载软件)

在要删除的镜像中有容器存在,要删除镜像,首先删除容器

  1. 停止容器
 docker ps // 查看所有正在运行容器
 docker stop containerId // containerId 是容器的ID

 docker ps -a // 查看所有容器
 docker ps -a -q // 查看所有容器ID

 docker start $(docker ps -a -q) // start启动所有停止的容器
 docker stop $(docker ps -a -q) // stop停止所有容器
 docker rm $(docker ps -a -q) // remove删除所有容器
  1. 删除容器和删除所有容器
# 删除一个
docker rm 容器ID

docker rm $(docker ps -aq)
  1. 删除镜像
其中,-f可以不加,加-f强制删除
docker rmi -f 镜像名/镜像ID

#删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)

4 停止/重启容器

  1. 启动一个或多个已经被停止的容器
docker start [container id]
  1. 停止一个运行中的容器
docker stop [container id]
  1. 重启容器
docker restart [container id]

5 进入容器

docker ps -a
## 例如启动redis
docker exec -it 2be1bf55c462 redis-cli
## 例如进入nginx
docker exec -it a46321437e24(nginx的CONTAINERID) /bin/bash
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值