docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ mysql
docker run:创建并运行一个容器,-d是让容器在后台运行,如果不加-d让容器在后台运行的话他可能就会卡在哪里,会一直等待程序的执行。所以平常加上-d就让容器后台运行,命令虽然结束了但是MySQL进程和这个容器会持续保持运行状态,不会影响正常工作,这是配套指令,一般都会加上。
--name mysql:给容器起名字,必须唯一。
-p3306:3306:设置端口映射,前面是宿主机端口,后面是容器内端口。容器内端口取决于进程,是不需要去改动的。
-e KEY = VALUE :e就是environment设置环境变量,KEY = VALUE
mysql:指定运行的镜像的名字,镜像名称一般分两部分组成:[repository]:[tag]。其中repository是镜像名字,tag是镜像的版本。例如:mysql:5.7,在没有指定tag是,默认是latest,代表最新版本的镜像。
常见命令
Docker最常见的命令就是操作镜像、容器的命令,详见官方文档:https://docs.docker.com/
docker pull:拉取镜像
docker push:推送镜像到DockerRegistry
docker images:查看本地镜像
docker rmi:删除本地镜像
docker run:创建并运行容器(不能重复创建)
docker stop:停止指定容器
docker start:启动指定容器
docker restart:重新启动容器
docker rm:删除指定容器
docker ps:查看容器
docker logs:查看容器运行日志
docker exec:进入容器
docker save:保存镜像到本地压缩文件
docker load:加载本地压缩文件到镜像
docker inspect:查看容器详细信息
编辑
docker pull nginx:拉取nginx,完成后使用docker images查看一下本地镜像列表是否有nginx
编辑
如果我们想要保存镜像本地使用就用docker save 如果记不住docker save怎么操作可以使用docker save --help查看帮助命令
编辑
编辑
那如果要删除呢,使用docker rmi nginx:latest
编辑
可以看到即便删除了但是本地还有一个tar包,如果想继续使用的话只需要load回来就可以了
docker load -i nginx.tar
编辑
这样nginx就回来啦。
docker run -d --name nginx -p 80:80 nginx运行docker容器,docker ps查看正在运行的容器。
也可以加格式化方式访问,格式会更加清爽
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
format参数来改变输出的样式,使样式更加的简洁。
停止容器:docker stop nginx
查看所有容器(不只运行中的):
docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
再次启动nginx容器:docker start nginx(不能够再docker run,docker run是创建容器)
再次查看容器:
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
查看容器详细信息:docker inspect nginx
查看日志:docker log nginx
进入容器,查看容器内目录:docker exec -it nginx bash,-it就是一个可交互的终端,bash就是命令终端。
或者,可以进入MySQL:docker exec -it mysql mysql -uroot -p
删除容器:docker rm nginx
发现无法删除,因为容器运行中,强制删除容器:docker rm -f nginx
有错误欢迎指正,欢迎大家交流,希望大家涨薪升职,头发多多!