Docker容器的使用
Docker容器的使用
获取镜像
比如获取ubuntu镜像
docker pull ubuntu
启动容器
拉取镜像后,可以根据镜像启动一个docker容器。
docker run -itd ubuntu /bin/bash
参数:
-i
:交互式操作-t
:终端-d
:容器的运行模式,不进入容器ubuntu
:镜像名称/bin/bash
:执行的命令
查看容器
# 查看所有容器
docker ps -a
# 查看运行的容器
docker ps
停止一个容器
docker stop 容器id
重启一个容器
docker restart 容器id
进入容器
使用-d
参数运行的容器,会进入后台运行,要想进入,则通过以下命令:
docker attach 容器id
:进入已经运行的容器,当从终端执行exit
时,会停止运行的容器docker exec
:(推荐方式)进入已经运行的容器,当从终端执行exit
时,不会停止运行的容器。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ff6bfbfe6ba ubuntu "/bin/bash" 12 minutes ago Up About a minute elastic_wing
$ docker attach 3ff6bfbfe6ba
# exit
exit
$ docker ps # 退出后容器3ff6bfbfe6ba停止
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ docker start 3ff6bfbfe6ba
3ff6bfbfe6ba
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ff6bfbfe6ba ubuntu "/bin/bash" 13 minutes ago Up 5 seconds elastic_wing
$ docker exec -it 3ff6bfbfe6ba /bin/bash
# exit
exit
$ docker ps # 从终端退出后容器3ff6bfbfe6ba仍然在运行
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ff6bfbfe6ba ubuntu "/bin/bash" 14 minutes ago Up 40 seconds elastic_wing
导出容器快照
将指定的容器(运行中和非运行中的容器均可)快照到本地文件:
docker export 容器id > 文件.tar
~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ff6bfbfe6ba ubuntu "/bin/bash" 23 minutes ago Up 9 minutes elastic_wing
~$ docker export 3ff6bfbfe6ba > ubuntu.tar
~$ ls
bin Desktop Documents Downloads Music opt Pictures Public Templates ubuntu.tar Videos
~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ff6bfbfe6ba ubuntu "/bin/bash" 23 minutes ago Up 10 minutes elastic_wing
837b70896597 hello-world "/hello" About an hour ago Exited (0) About an hour ago beautiful_tharp
1210b15edfff hello-world "/hello" About an hour ago Exited (0) About an hour ago confident_maxwell
64aca3d676e4 hello-world "/hello" About an hour ago Exited (0) About an hour ago heuristic_wiles
~$ docker export 837b70896597 > hello-word.tar
~$ ls
bin Desktop Documents Downloads hello-word.tar Music opt Pictures Public Templates ubuntu.tar Videos
导入容器快照
从容器快照文件中导入为镜像。
docker import 快照文件 镜像
也可以通过指定URL来导入。
例如:
~$ docker images # 存在的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest e34e831650c1 2 weeks ago 77.9MB
hello-world latest d2c94e258dcb 9 months ago 13.3kB
~$ ls
bin Desktop Documents Downloads hello-word.tar Music opt Pictures Public Templates ubuntu.tar Videos
~$ docker import ubuntu.tar test/ubuntu:v1 # 从容器快照文件导入镜像
sha256:05443cf468db19a51a0436ae626a15fdfa07f13bbe7439f2cf9a61a8a0a5560b
~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test/ubuntu v1 05443cf468db 7 seconds ago 0B
ubuntu latest e34e831650c1 2 weeks ago 77.9MB
hello-world latest d2c94e258dcb 9 months ago 13.3kB
~$
删除容器
删除指定id的容器。
docker rm -f 容器id
清理所有处于终止状态的容器。
docker container prune
查看容器的端口映射
docker port 容器id
查看容器的运行日志
docker log -f 容器id
查看容器内部运行的进程
docker top 容器id
查看容器的配置和状态信息
docker inspect 容器id
会返回一个记录容器配置和状态信息的json文件。