Docker 容器 client 使用介绍。
docker images
Docker image 镜像采用联合加载 unit mount
,存储位置 /var/lib/docker
docker info
列出镜像
docker images [OPTSIONS] [REPOSITORY]
镜像的标签和仓库:
查看镜像
docker inspect [OPTIONS] container|image [container|image...]
-f, --format=""
docker inspect ubuntu:14.01
删除镜像
docker rmi [OPTIONS] IMAGRE [IMAGE...]
- -f, –force=false 强力删除镜像
- –no-prune=false Donot delete untagged parents
docker rmi $(docker images -q ubuntu)
dokcer push/pull
查找镜像
Docker Hub
docker search [OPTIONS] term
--automated=false Only show automated builds
--no-trunc=false Don't truncate output
-s, --stars=0 Only displays with at least x stars
最多返回25个结果
拉取镜像
docker pull [OPTION] NAME [:TAG]
-a, --all-tags=false Download all tagged images in the repository
使用 --registry-mirror
选项
- 修改:/etc/default/docker
- 添加:
DOCKER_OPTS="--registry-mirror=http://mirror.addr"
推送镜像
docker push NAME [:TAG]
docker push xiexianbin/nginx
dokcer run 启动容器
docker run IMAGE [COMMAND] [ARG...]
run 在新容器中执行命令
docker run unbuntu echo "Hello world"
# Issue in windows: the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'
echo "alias docker='winpty docker'" >> ~/.bashrc
docker run -it --rm \
-w "/go/src/github.com/cosmtrek/hub" \
-v ${pwd}:/go/src/github.com/cosmtrek/hub \
-p 8000:8000 \
cosmtrek/air
启动交互式容器
docker run -i -t IMAGE /bin/bash
-i –interactive=true | false 默认是false
-t –tty=true | false 默认是false
查看容器
docker ps [-a] [-l]
docker inspect id/name
自定义容器名
docker run --name=自定义名 -t -i IMAGE /bin/bash
docker run --name=container01 -t -i unbunt /bin/bash
docker ps -l
重新启动停止的容器
docker start [-i] ID/NAME
docker rm ID/NAME
PS:仅能删除停止的容器
什么是守护式容器
- 能够长期运行
- 没有交互式会话
- 适合运行应用程序和服务
以守护形式运行容器
docker run -i -t IMAGE /bin/bash
Ctrl + P Ctrl + Q 组合键退出,不使用exit
重庆进入:
docker attach ID/NAME
docker ps 查看
启动守护式容器
docker run -d IMAGE [COMMAND] [ARG...]
docker run --name dc1 -d unbunt /bin/sh -c "while true; do echo hello world; sleep 1; done"
查看容器日志
docker logs [-f] [-t] [-tail] 容器名
- -f –follows=true | false 默认为false
- -t –timestamps=true | false默认为false
- –tail=“all”
docker logs -tf --tail 10 dc1
查看容器中的进程
docker top dc1
在运行的容器中启动新进程
docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]
docker exec -i -t dc1 /bin/bash
docker top dc1
docker exec -it -u root 容器名 /bin/bash
停止守护式容器
docker stop 容器名 ## 发送终止信号,等待停止
docker kill 容器名 ## 直接kill
使用Docker帮助文件
man docker-run
man docker-logs
man docker-top
man docker-exec
在容器中部署静态网站
设置容器的端口映射
run [-P] [-p]
-P,--publish-all=true|false 默认为false
docker run -P -i -t ubuntu /bin/bash
-p --publish=[]
containerport
docker run -p 80 -i -t ubuntu /bin/bash # 宿主机端口随机映射
hostPort:containerPort
docker run -p 8080:8080 -i -t ubuntu /bin/bash # 宿主机端口与容器端口意义映射
ip::containerPort
docker run -p 0000:80 -i -t ubuntu /bin/bash # 指定容器端口
ip:hostPort:containerPort
docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash # 指定host ip + 端口和容器端口
docker port 容器名 # 查看端口映射情况
docker exec web nginx
docker top web
PS:停止容器并重新启动是,IP映射会发生变化
启动应用
docker run -p 80 --name web -i -t ubuntu /bin/bash
apt-get install nginx
磁盘使用
docker system df
docker system prune -f -a
docker system prune --force