容器基本操作
最简单的运行镜像为容器的命令如下:
docker run --name container-name -d image-name
运行一个容器只要通过 docker run 命令即可实现,其中,—name 参数是为容器取得名称;-d表示 detached,意味着执行完这句命令后控制台将不会被阻碍,可继续输入命令操作;最后的 image-name 是要使用哪个镜像来运行容器。
我们来运行一个 Redis 容器:
docker run --name test-redis -d redis
Docker 会为我们的容器生成唯一的标识。
容器列表
通过下面的命令,查看运行中的容器列表,如图所示。
docker ps
其中 CONTAINER ID 是在启动的时候生成的 ID;IMAGE 是该容器使用的镜像;COMMAND 是容器启动时调用的命令;CREATED 是容器创建时间;STATUS 是当前容器的状态;PORTS 是容器系统所使用的端口号,Redis 默认使用 6379 端口;NAMES 是刚才给容器定义的名称。
通过下列命令可查看运行和停止状态的容器:
docker ps -a
停止容器
停止容器通过下面的命令:
docker stop container-name/container-id
我们可以通过容器名称或者容器 id 来停止容器,以停止上面的 Redis 容器为例:
docker stop test-redis
此时运行中的容器列表为空。查看所有容器命令,可看出此时的 STATUS 为退出。
启动容器
启动容器通过下面命令:
docker start container-name/container-id
再次启动我们刚才停止的容器:
docker start test-redis
此时查看容器里列表如图所示。
端口映射
Docker 容器中运行的软件所使用的的端口,在本机和本机的局域网是不能访问的,所以我们需要将 Docker 容器中的端口映射到当前主机的端口上,这样我们在本机和本机所在的局域网中就能访问该软件了。
Docker 的端口映射是通过一个 -p 参数来实现的。我们以刚才的 Redis 为例,映射容器的 6379 端口到本机的 6378 端口,命令如下:
docker run -d -p 6378:6379 --name port-redis redis
删除容器
删除单个容器,可通过下面的命令:
docker rm container-id
删除所有容器,可通过下面的命令:
docker rm $(docker ps -a -q)
容器日志
查看当前容器日志,可通过下面的命令:
docker logs container-name/contailer-id
我们查看上面 Redis 容器的日志,命令如下:
docker logs test-redis
登录容器
运行中的容器其实是一个功能完备的 Linux 操作系统,所以我们可以像常规的系统一样登录并访问容器。
我们使用下面命令,登录访问当前容器,登录后我们可以在容器中进行常规的 Linux 系统操作命令,还可以使用 exit 命令退出登录。
docker exec -it container-id/container-name bash