docker常用命令
作用命令启动/停止容器
docker start/stop [container_name]
删除容器
docker rm [container_name/ID]
删除镜像
docker rmi [image_name/ID]
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
查看所有镜像
docker images
创建镜像
docker build -t [image_name] .
创建容器
docker run -it --name [container_name] [image_name]
进入正在运行中的容器
docker exec -it [container_name] /bin/bash
Dockerfile文件
用于创建镜像,通常包含以下步骤。
实例操作
一、创建“可执行程序及依赖库”的镜像
将一个可执行程序及其依赖库打包进镜像,该镜像不依赖于任何基础镜像,
相当于将程序打包,任何使用者利用该镜像即可执行程序,不用关心所处的开发环境。
这种无法进入目录,进入目录需要命令行工具bash,需要依赖于一个操作系统的环境镜像。
- 写一个简单的C程序,main.c
- gcc编译main.c生成a.out
- 查看a.out的依赖 可见a.out依赖于 /lib/x86_64-linux-gnu/libc.so.6 /lib64/ld-linux-x86-64.so.2
- 在当前目录创建依赖库的对应路径,并将依赖库拷贝
- 创建Dockerfile文件 这里设置工作目录为/app; FROM scratch 指基础镜像为空; COPY拷贝可执行程序a.out,并将依赖库拷贝到指定位置,防止库链接出错。
- 创建名为hello_docker的镜像 docker build -t hello_docker . 查看镜像是否存在 docker images
- 创建容器并运行 docker run -it --name hello_docker hello_docker 出现Hello docker!表示运行成功。 查看容器 docker ps -a
注:这种给软件打包的镜像与容器,在容器启动后运行可执行程序后,容器就会自动结束,在docker ps中也查询不到在运行中的容器。
二、创建“可编程环境”的镜像
基于ubuntu-18.04的开发环境,创建一个可编程环境的镜像。进入该镜像创建的容器,可以进行程序编译与运行,相当于一个ubuntu系统。
- 创建一个code文件夹与main.c
- 编写Dockerfile
- 创建镜像docker_test docker build -t docker_test . 查看镜像,docker_test创建成功
- List item 创建容器并运行 docker run -it --name docker_test docker_test 出现以下字样表明成功创建容器,并进入容器,当前目录为Dockerfile中创建的工作目录/code 通过ls命令查看,可以发现main.c存在于/code下, 利用gcc编译main.c并运行可执行程序a.out, 出现Hello docker! 表明镜像与容器创建成功。 可通过vscode远程连接进入容器docker_test中
如何进入容器
已经创建了一个容器,后面怎么进入该容器中?
通过docker exec命令
- 启动容器
docker start container_name
- 进入容器 启用交互模式,可利用命令行进行交互(需要容器中包含bash shell)
docker exec -it container_name /bin/bash
docker exec基本语法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
• OPTIONS: 可选参数,用于指定一些附加选项,比如 -i(交互式)、-t(分配伪终端)等
• CONTAINER: 要执行命令的目标容器名称或容器ID
• COMMAND [ARG…]: 要在容器内执行的命令及其参数
更过使用细节,可通过help命令查看
docker exec --help
版权归原作者 派的三次方根 所有, 如有侵权,请联系我们删除。