Docker
在 Linux 上的部署
Docker 使用
建议先看官方的新手指南 docker for beginners
0. 查找 help
任何一个应用,最好的了解方法就是查找 帮助文档,了解主要的参数设置
1. 查看 docker 的系统信息
docker info
2. List command
docker
会显示 docker 的 subcommand list
3. 查找 docker 仓库中的 images
docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos DEPRECATED; The official build of CentOS. 7664 [OK]
kasmweb/centos-7-desktop CentOS 7 desktop for Kasm Workspaces 41
bitnami/centos-base-buildpack Centos base compilation image 0 [OK]
couchbase/centos7-systemd centos7-systemd images with additional debug… 8 [OK]
continuumio/centos5_gcc5_base 3
datadog/centos-i386 0
dokken/centos-7 CentOS 7 image for kitchen-dokken 5
OFFICIAL
列为 OK,代表是官方 build 和 support 的。
4. 拉取应用
当找到想要的应用后,使用
docker pull centos
下载到本地
5. 运行
docker run
更加有用的用法是:
docker run -it container-name
-i interactive 交互式
-t pseudo-tty
进入到 container 的 shell 里面进行交互操作
目前领悟到的,是先在 交互式界面里 熟悉命令,官方说法 It makes sense to spend some time getting comfortable with it.
等熟悉了之后,直接使用 docker run
跑命令
--rm
推出后自动删除 container
❗ 注意:-it container-name
在最后
6. 查看运行的 containers
docker ps
更有用的用法
docker ps -a
7. 删除 container
docker rm
docker rm $(docker ps -a -q -f status=exited)
docker container prune
会删除掉所有 exited container
在 docker run
设置参数 --rm
会在 exit 后自动删除 container,非常好用
8. 删除 images
docker rmi image-name
Docker pull 修改默认位置
编辑 /etc/docker/daemon.json
添加设置:
{
"data-root": "/new/docker/dir"
}
重启服务生效
systemctl stop docker
systemctl start docker
docker 进阶
将本地文件传入/传出 container
mount 传入 container
docker run --mount type=bind,source="$(pwd)"/R,target=/home/data --rm -it bmennis/majiq
!参考Having Docker access External files
copy files/folders between a container and the local filesystem
docker cp <container-id>:SRC_PATH DEST_PATH|-
docker cp SRC_PATH|- <container-id>:DEST_PATH
!参考Copying files from Docker container to host
container 的退出与重新进入
不考虑 –rm 的情况,每次运行 image 都会产生新的 container,这样既浪费资源,也使得我们在 container 内的操作重复,所以在长期使用一个 软件时,应该保持一个 container,进行反复操作。
container 有几种状态: running, exited,
我对 container 的退出与重新进入做了一些测试:
- docker run mageck 后,直接 Ctrl+D 或者 exit 退出,会使 container 处于 exited 状态
exited container 无法直接使用
使用 start 启动 exited container
docker exec 重新进入 running container
同理,使用 stop 停止 container 运行,可进行删除操作
当我们使用 Ctrl+P 后接 Ctrl+Q 的方法 detached the container,就会保持 container 处于 running 状态
参考How to Exit a Docker Container
- 在 detach container 之后,可以用
docker attach container-name
重新回到 container
向内部程序传入参数
docker run -it -d --name my_container -e PARAMS="parameters" my_image