docker常用命令及用法

常用参数

--name:        设置容器名称
--volume:      (简写 -v) 设置挂载的目录
--workdir:     (简写 -w) 指定容器工作目录
--publish:     (简写 -p) 映射端口
--env:         (简写 -e) 设置容器环境变量
--hostname:    (简写 -h) 设置容器内hostname
--tty:         (简写 -t) 分配一个伪终端
--interactive: (简写 -i) 保持容器内的标准输入 (STDIN) 进行交互

命令帮助

 ☁  ~  docker --help 

Usage:  docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Common Commands:
  run         Create and run a new container from an image
  exec        Execute a command in a running container
  ps          List containers
  build       Build an image from a Dockerfile
  pull        Download an image from a registry
  push        Upload an image to a registry
  images      List images
  login       Log in to a registry
  logout      Log out from a registry
  search      Search Docker Hub for images
  version     Show the Docker version information
  info        Display system-wide information

子命令帮助

 ☁  ~  docker run --help                          

Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Create and run a new container from an image

Aliases:
  docker container run, docker run

Options:
      --add-host list                    Add a custom host-to-IP mapping (host:ip)
      --annotation map                   Add an annotation to the container (passed through to the OCI runtime) (default map[])
  -a, --attach list                      Attach to STDIN, STDOUT or STDERR
      --blkio-weight uint16              Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
      --blkio-weight-device list         Block IO weight (relative device weight) (default [])
      --cap-add list                     Add Linux capabilities
      --cap-drop list                    Drop Linux capabilities
      --cgroup-parent string             Optional parent cgroup for the container
      --cgroupns string                  Cgroup namespace to use (host|private)
......

nginx容器示例

echo "111" > /data/nginx/index.html

docker run --name nginx -v /data/nginx/:/usr/share/nginx/html -p 8001:80 -d nginx

--name: 设置容器名称为nginx
-v :将宿主机目录/data/nginx与容器目录/usr/share/nginx/html映射
-p :将容器内80端口映射到宿主机8001端口上
-d : 后台运行
nginx : 使用nginx:latest最新镜像版本,tag为latest,在创建时可省略
☁  ~  docker ps                                  
CONTAINER ID   IMAGE      COMMAND                   CREATED         STATUS          PORTS                                                  NAMES
956d0e3e5f3e   nginx      "/docker-entrypoint.…"    2 seconds ago   Up 1 second     0.0.0.0:8888->80/tcp, :::8888->80/tcp                  nginx



此时在浏览器或者终端curl访问:
http://宿主机IP:8888  即可看到111的返回内容

常见用法

1.修改正在运行的容器名称
docker rename [容器ID] [新的容器名称]
2.更新容器参数
docker update --restart=always [容器ID]
3.复制宿主机文件(夹)到容器内
# docker cp file [容器名称或容器ID]:[容器内目录]
# docker cp -r folder [容器名称或容器ID]:[容器内目录]

# 复制test文件到nginx容器内的/tmp目录
docker cp test nginx:/tmp
4.复制容器内文件(夹)到宿主机
# docker cp [容器名称或容器ID]:[容器内目录文件] [宿主机目录]
# docker cp -r [容器名称或容器ID]:[容器内目录] [宿主机目录]
docker cp nginx:/tmp/test /data/nginx/
5.镜像的导入导出
# docker save -o [镜像名称].tar 镜像名称:tag  
# 导出到宿主机/data/目录
docker save -o /data/nginx.tar nginx:latest

# docker load -i [镜像名称].tar 
# 导入镜像
docker load -i nginx.tar
6.打包容器成镜像
# docker commmit [容器ID] [镜像名称]:[tag]
# 打包以后可在镜像列表中查看 docker images 
docker commit 956d0e3e5f3e mynginx:v1 
7.查看日志
# 查看容器滚动日志 ,可配合grep筛选日志
docker logs -f [容器名称]
8.执行容器内部命令
☁  ~  docker exec -it nginx bash -c "echo 111"
111
9.[定时任务场景] 容器执行一次就删除
docker run --rm -v /etc/hosts:/etc/hosts \
            -v /data/www/test/:/app/test \
            -w /app/test alpine-python-3.8.10 \
            python scripts/test.py


命令详解:
-v /etc/hosts:/etc/hosts                        # 映射宿主机host到容器内
-v /data/www/test/:/app/test                    # 代码目录映射
-w /app/test                                    # 指定容器内工作目录
python scripts/test.py                          # 使用容器内python解释器执行脚本
alpine-python-3.8.10                            # 容器使用的镜像
--rm                                            # 在命令执行完以后就删除容器所有信息
### Docker 常用命令列表及其使用方法 #### 获取镜像 为了从仓库中获取一个镜像,可以利用 `docker pull` 命令。此命令会下载指定名称的镜像到本地环境[^1]。 ```bash docker pull <image_name> ``` 例如,要拉取官方最新的 Ubuntu 镜像: ```bash docker pull ubuntu:latest ``` #### 加载本地镜像文件 对于已经打包成 `.tar` 格式的镜像文件,则可以通过 `docker load` 来导入这些压缩包中的内容至本地镜像库[^2]。 ```bash docker load -i /path/to/container.tar ``` 这允许用户恢复之前保存过的镜像版本或是分享给其他开发者使用的自定义配置。 #### 列出已有的镜像 查看当前机器上所有的可用镜像可通过执行如下指令完成: ```bash docker images ``` 该操作有助于管理现有资源并确认所需组件是否已被成功安装。 #### 创建容器实例 当准备好运行某个特定的应用程序时,便能借助于 `docker run` 启动一个新的进程,在其中执行相应的任务[^3]。 ```bash docker run [OPTIONS] IMAGE [COMMAND] [ARG...] ``` 这里有几个重要的选项需要注意: - `-d`: 表示后台模式启动; - `-p HOST_PORT:CONTAINER_PORT`: 映射主机端口与容器内部服务监听地址之间的关系; - `-v HOST_DIR:CONTAINER_DIR`: 将宿主机目录挂载进虚拟环境中供访问; 举个例子来说,如果想要开启一台带有 Web 服务器功能的服务节点,那么就可以这样写脚本: ```bash docker run -d -p 8080:80 nginx ``` 这条语句意味着将以分离方式创建 Nginx 的实例,并将其第 80 端口号映射到了外部网络接口上的 8080 上面去。 #### 查看正在运行的容器 通过下面这个简单的命令能够快速了解到有哪些活动着的工作单元存在: ```bash docker ps ``` 它仅显示处于活跃状态下的条目,默认情况下不会展示那些已经被停止下来的对象。若希望获得更全面的信息集合,请附加参数 `--all` 或者简称 `-a` 即可实现目标。 #### 终止和删除容器 一旦不再需要某项作业继续占用计算资源的时候,就应当考虑终止它的生命周期以及清理掉残留的数据记录。具体做法如下所示: 停止选定的目标: ```bash docker stop CONTAINER_ID_OR_NAME ``` 移除已完成的任务痕迹: ```bash docker rm CONTAINER_ID_OR_NAME ``` 当然也可以一次性清除所有未被使用的实体,只需加上额外的选择器即可达成目的: ```bash docker system prune ``` 以上就是一些基础却十分实用的操作指南,帮助初学者更好地理解和掌握 Docker 平台的核心技能集。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值