docker基本指令

Run

基于镜像新建一个容器并运行


# docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run -it ubuntu:18.04 /bin/bash
	-t 启动一个伪终端
	-i 打开容器的标准输入
	ubuntu:18.04 镜像
	/bin/bash 在镜像中执行的命令
	

其他常用参数

	-d 后台任务运行
	-p 8081(主机):8081 建立主机与容器的端口映射
	-v $PWD/website:/var/www/html/website 将文件夹挂在到容器内部 本地:容器路径:rw(ro)
	
	--name hahah 给新容器命名
	--rm 退出之后就删除容器
	
	--log-driver="syslog" # 设置日志驱动, 默认json-file
	--restart=always # 容器自动重启 --restart=on-failure:5
	
	-e 传递环境变量

管理

Container

docker stop containerId/name # 暂停容器
docker start containerId/name # 启动容器
docker kill CONTAINER # 发送SIGKILL

查看容器

docker container ls # 查看现在正常运行的容器
	-a  # 查看所有容器, 包括已经停止的容器

删除容器

docker rm CONTARINER

# 删除全部容器
docker rm `docker ps -a -q`

images

镜像, 镜像存储位置 /var/lib/docker/docker

docker images # 查看镜像列表
# 拉取用户镜像需要带上用户名 gilf/httpd , 顶层镜像只需镜像名 ubuntu

# 删除镜像
docker rmi IMAGE 
# 删除全部镜像
docker rmi `docker images -a -q`

docker pull NAME[:TAG|@DIGEST] # 拉取镜像

docker search NAME # 查看所有Docker Hub上的公共镜像

提交容器的变更到镜像

docker commit $容器名 $仓库镜像名[:Tag]
	-m 提交消息
	-a 作者名称

docker commit 4aab3ce3cb76 jamtur01/apache2


docker push [OPTIONS] NAME[:TAG]
# 将变更推送到hub上

构建镜像

  1. Dockfile
# Version: 0.0.1
FROM ubuntu:14.04 # 每个Dockerfile 第一条指令必须是FROM, 基础镜像
MAINTAINER James Turnbull "james@example.com" 
RUN apt-get update && apt-get install -y nginx # Run 默认用 /bin/sh -c 执行
RUN echo 'Hi, I am in your container' \ 
 >/usr/share/nginx/html/index.html
EXPOSE 80

###
使用 exce格式的run命令
RUN ["apt-get", " install", "-y" "nginx"]

dockerfile
2. build

# 进入Dockerfile所在的文件夹
docker build -t="gilf/httpd:v1"
	-t 为新镜像设置仓库和名称, 版本可以省略(默认latest)
	-f 可以指定dockerfile文件
	
# 使用远程github的 dockerfile, 
docker build -t="gilf/httpd:v1" \
	git@github.com:gilf/httpd-dir
	
docker build --no-cache
# 不使用构建过程中的缓存镜像

# 查看构建历史镜像层
docker history $镜像名称

交互

attach

docker attch container # 将当前终端的标准io连上容器的标准io

exec
在容器内部额外启动新进程, 执行命令

docker exec [options] CONTAINER COMMANDS
	-d # 后台任务
	-i -t # 交互任务

查看日志

docker logs # 查看容器内部的日志 
# docker logs 显示的内容包含 STOUT 和 STDERR
#	--tail 10 # 获取末尾10行
#	-f # 关注最新的日志

查看容器

# 查看容器内部进程
docker top CONTAINER

# 查看各个容器的CPU, 内存, 网络I/O的使用情况
docker starts CONTAINER1 CONTAINER2 ...

# 检查容器配置信息
docker inspect CONTAINER

# 查看容器映射的端口
docker port $容器 80

文件转移

# 从容器中拷贝文件到本地,   或者拷贝文件到容器中
docker cp CONTAINER:SRC_PATH DEST_PATH
# docker cp bob:/home/world.md .
# docker cp ./hello.md bob:/home/

其他

登陆 Registry 服务器

docker login 

docker logout
# $HOME/.docker/config.json 登入信息

Referrence

  • 第一本Docker书
posted @ 2021-10-31 17:45  Gilfoyle_programer  阅读(56)  评论(0编辑  收藏  举报