背景

最近在mac上重置了一下开发环境,像一些数据库,nginx之前是通过brew install下载安装的,如果你使用命令brew services start nginx启动它会一直在后台运行,如果用docker的话就可以不用brew services了,而且dockernginx配置文件比brewnginx配置文件要简单很多,而且dockernginx配置文件可以很方便的映射到host的某个端口,这样host就可以直接访问nginx了。

总之,也算是另外的一种尝试了吧,就是吧所有的服务分小容器运行起来,然后通过docker-compose来管理这些容器。这样后期管理卸载安装更加方便。

安装docker的话就很简单了,可以直接安装桌面端版本,或者通过命令行安装。点击下载

安装成功之后,可以通过

1
docker -v // 查看是否安装成功

拉取镜像

镜像的拉取比较简单,只需要通过命令docker pull即可拉取镜像,比如拉取nginx镜像,命令如下:

1
2
docker pull nginx
docker pull nginx:1.21.6

查看镜像

拉取镜像之后,就可以通过命令docker images来查看已经拉取的镜像了,比如

1
2
3
4
5
6
7
docker images


REPOSITORY TAG IMAGE ID CREATED SIZE
mongo latest 4b372541400c 13 days ago 761MB
nginx latest 443d199e8bfc 3 weeks ago 193MB
redis latest db35fcf47f4b 7 weeks ago 139MB

运行容器

镜像拉取之后,就可以通过命令docker run来运行容器了,比如运行nginx容器,命令如下:

1
docker run -d -p 80:80 nginx

-d表示后台运行,-p表示映射端口,80:80表示将host80端口映射到nginx80端口,这样host就可以直接访问nginx了。

查看容器

运行容器之后,就可以通过命令docker ps来查看已经运行的容器了,比如

1
2
3
4
5
6
docker ps # 或者 docker container ls -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
71428fe3e26b redis "docker-entrypoint.s…" 50 minutes ago Up 50 minutes 0.0.0.0:6379->6379/tcp keen_williams
184730973f68 mongo "docker-entrypoint.s…" 4 hours ago Exited (0) 2 hours ago cool_shtern
8060b393b482 nginx "/docker-entrypoint.…" 6 hours ago Exited (0) 2 hours ago suspicious_ishizaka

停止容器

停止容器可以通过命令docker stop来停止容器,比如

1
2
# 8060b393b482 就是容器的id 输入前四位即可
docker stop 8060b393b482 # 或者 docker container stop 8060b393b482

停止容器之后,可以通过命令docker ps来查看已经停止的容器了;

删除容器

删除容器可以通过命令docker rm来删除容器,比如

1
docker rm 8060b393b482 # 或者 docker container rm 8060b393b482

启动容器

启动容器可以通过命令docker start来启动容器,比如

1
docker start 8060b393b482 # 或者 docker container start 8060b393b482

删除镜像

删除镜像可以通过命令docker rmi来删除镜像,比如

1
docker rmi nginx:latest # 或者 docker image rm nginx:latest

删除所有容器

删除所有容器可以通过命令docker rm -f $(docker ps -aq)来删除所有容器,比如

1
docker rm -f $(docker ps -aq) # 或者 docker container rm -f $(docker container ls -aq)

删除所有镜像

删除所有镜像可以通过命令docker rmi -f $(docker images -q)来删除所有镜像,比如

1
docker rmi -f $(docker images -q) # 或者 docker image rm -f $(docker image ls -q)

删除所有未使用的镜像

删除所有未使用的镜像可以通过命令docker rmi -f $(docker images -f "dangling=true" -q)来删除所有未使用的镜像,比如

1
docker rmi -f $(docker images -f "dangling=true" -q) # 或者 docker image rm -f $(docker image ls -f "dangling=true" -q)

上面就是对docker的一些常用命令,希望对大家有所帮助。