docker基础命令

docker结构分为仓库、镜像、容器

仓库:可以注册一个docker.hub的账号,创建一个自己的仓库

镜像结构:

registry_name/repository_name/image_name:tag_name
比如 docker.io/library/alpine:lastest

docker命令

1.docker info

显示docker目前各种状态

2.镜像管理

docker login docker.io #登录registry 

docker search image_name   #搜索image_name 

docker pull  image_name(:tag) #下载镜像

docker tag f70734b6a266 docker.io/dhc102802/alpine:test #给镜像打标签,使用的是image id,打的标签要有完整镜像路径

docker images  #查看本地镜像

docker pull docker.io/dhc102802/alpine:test  #推送镜像,前提是标签打好,并且login完成

docker rmi image_name #删除本地镜像的对应tag

docker rmi image id  #删除本地镜像

docker save image-id -0 alpine.tar.gz  #导出镜像为tar包,但是没有标签和名称
docker save -o my.tar.gz  docker.io/dhc102802/alpine_with:test  #带有标签和名称
docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
docker save image-id > alpine.tar.gz
docker load < alpine_with.tar.gz #导入包,或者-i 替换<
#导入后包是没有镜像仓库名和tag的,需要重新tag


3.容器操作

docker ps #查看docker启动的容器进程
	-a   #查看所有的
	-l   #最近的
	-q   #只显示容器启动的容器id
	
docker run #使用最多的命令
	Usage:	docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
	-i 启动一个交互容器
	-t 使用争端关联到输入输出
	-it  这个一般都是合在一起使用
	-d 放在后台
	-rm 推出后立刻删除容器
	-name 定义名称
	-p 对应端口
	-v 挂载的文件
	--restart=always 自动重启
docker run -it -d dhc102802/alpine:test /bin/sh #启动容器

docker exec -it 487e772e40d0 /bin/sh #进入容器

ctrl+d 退出不删除
exit 同样

docker stop container—id 关闭容器
docker start container—id 启动容器
docker restart container—id 重启容器
docker rm container—id|name删除容器
docker rm -f container—id|name 删除容器

docker commit -p 487e772e40d0 dhc102802/alpine:with_change #保存修改的镜像
	-p 是保存的时候,不会写入新的内容
	docker commit continer—id|container—name image-name  #格式
 以后启动dhc102802/alpine:with_change 这个镜像就是已经修改过的了
docker logs container-id 打印容器日志
	-f 动态输出,和tail -f一样

4.重要操作

我把一些比较重要得操作单独放在这里分类

#映射端口
 docker run -p 容器外端口:容器内端口
 docker run -it  --name my-nginx -d -p 100:80 dhc102802/nginx:v1  #将nginx得80端口对应到宿主机得100端口
 
#挂载数据卷
docker run -v 
docker run -d -it --name nginx_baidu -p 81:80 -v /root/html:/usr/share/nginx/html dhc102802/nginx:v1  #挂载了鲁下来的百度主页

#查看容器的详细信息
docker inspect fad7ab4c518d 

#传递环境变量 (很重要)
生产环境下,可以只使用一个底包,根据需要设置不通的环境变量
docker run --rm -e dhc=123 dhc102802/nginx:v1 printenv
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=d710cca3afc0
dhc=123
NGINX_VERSION=1.12.2-1~stretch
NJS_VERSION=1.12.2.0.1.14-1~stretch
HOME=/root

#软件内安装服务
#以nginx镜像为列,系统为debian
1.更新源
tee /etc/apt/sources.list << eof
deb http://mirrors.ustc.edu.cn/debian stretch main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stretch-updates main contrib non-free
eof
2.安装需要的服务
apt-get update && apt-get install curl -y   #需要先更新才能安装
后面一般会进行commit + save

## echo "APT::Get::AllowUnauthenticated 1 ;" >>/etc/apt/apt.conf    #一直install 报错-y forse-yes报错,加了这个就好了

原文地址:https://www.cnblogs.com/dinghc/p/12971350.html