最近学习了docker,发现这东西真心方便。安装完成后就是下镜像,跑。然后就基本上不用操心了,还能像进虚拟机一样进去打命令做些临时配置。下面记录一些遇到的问题。
mac 安装 docker:
$ brew cask install docker
就一句话,等安装完成。但这时并不能执行docker命令,要在APP中点docker运行后才能在命令行中执行。
docker命令
docker images docker ps docker ps -a docker kill id docker restart id
docker rm id docker rmi imageId docker log docker exec -it id /bin/bash
docker pull url
docker run -d --network=host --name name image
docker images:docker下查看镜像
docker ps:显示现在正在运行的docker
docker ps -a:显示所有的容器(如果有个容器,ps中没有但在ps -a中有,那说明有问题,没跑起来,通过docker log等来排查原因)
docker kill id:停止某个容器。docker ps第一列就是id,实际运用时要把ID填进去。
docker restart id:重启某个容器。相当于重启系统,未保存的数据会丢失,已保存的数据还在。
docker rm id:删除某个容器。删除后再跑相当于重装系统,会恢复到镜像的初始状态。
docker rmi imageId:删除镜像。通常是更新镜像前操作。
docker log:查看docker里运行的日志,排查各种问题。
docker exec -it id /bin/bash:进入容器中执行命令,比如redis-cli的flushall等,对docker中的mysql进行备份复原等。
docker pull url:拉取镜像
docker run -d --network=host --name name image:从镜像执行容器,注意这里的--network=host只有linux系统可以,并且是直接映射到宿主机网络,windows与mac需要替换成 -p outport:inport,outport为宿主机端口,inport为容器端口。如:某镜像内有Mysql监听3306,你想通过宿主机的3636端口访问,则命令为 -p 3636:3306