当前位置:   article > 正文

MAC使用DOCKER常用命令_怎么在mac docker里运行命令

怎么在mac docker里运行命令

常用DOCKER功能

1 安装docker

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

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

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

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

launchctl list | grep docker
  • 1

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

0	com.docker.helper
  • 1

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

2 拉取镜像并启动

可参考视频传送门

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

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

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

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

文件内容如下

[mysqld]
character-set-server=utf8
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 安装并配置成功后进入软件
docker exec -it mysql /bin/bash
  • 1
  1. 登陆mysql
mysql -uroot -p123456
  • 1

redis

  1. 下载redis
docker pull arm64v8/redis
  • 1
  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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

nginx

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

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

  1. 配置文件挂载:在本地创建nginx配置文件的路径,然后将nginx的文件复制到此路径下
docker cp nginx:/etc/nginx/nginx.conf /Users/lx/settings/nginx
  • 1
  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;
		}
	}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  1. 删除容器和删除所有容器
# 删除一个
docker rm 容器ID

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

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

#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4 停止/重启容器

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

5 进入容器

docker ps -a
## 例如启动redis
docker exec -it 2be1bf55c462 redis-cli
## 例如进入nginx
docker exec -it a46321437e24(nginx的CONTAINERID) /bin/bash
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/820356
推荐阅读
相关标签
  

闽ICP备14008679号