docker总结

docker

一、docker 的安装

1、linux的安装

二、docker 的指令

1、docker镜像的使用

1)docker images # 查看所有镜像, 列出本地主机上的镜像
    # 结果展示
    REPOSITORY      TAG       IMAGE ID       CREATED          SIZE
    docker_demo     v3       185b39e20cdb   3 hours ago      129MB

    各个选项说明:
        REPOSITORY  # 表示镜像的仓库源
        TAG 		# 镜像的标签
        IMAGE ID    # 镜像ID
        CREATED     # 镜像创建时间
        SIZE        # 镜像大小
    # 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,
    # 如 ubuntu 仓库源里,有 15.10、14.04 等多个不同的版本,
    # 我们使用 REPOSITORY:TAG 来定义不同的镜像。
2# 获取一个新的镜像
	docker pull ubuntu:13.10 # 指定版本 13.10
    docker pull ubuntu    	 # 不指定版本,下载最新的lasted
3# 查找镜像
	docker search ubuntu
  	# 查询结果
    NAME    DESCRIPTION                   				   STARS     OFFICIAL   AUTOMATED
    ubuntu  Ubuntu is a Debian-based Linux operating  sys… 12744     [OK]   
  	# 返回字段说明
    NAME: # 镜像仓库源的名称
    DESCRIPTION: # 镜像的描述
    OFFICIAL: # 是否 docker 官方发布
    stars: # 类似 Github 里面的 star,表示点赞、喜欢的意思。
    AUTOMATED: # 自动构建。
4# 删除镜像
	docker rmi <镜像id>
    docker rmi 镜像名:镜像标签
5# 创建镜像
	# 当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,
	# 我们可以通过以下两种方式对镜像进行更改。
	1、从已经创建的容器中更新镜像,并且提交这个镜像
	2、使用 Dockerfile 指令来创建一个新的镜像,
    	# 使用dockerfile创建镜像参考下方dockerfile
6# 更新镜像
	# 更新镜像之前,我们需要使用镜像来创建一个容器。
    docker run -t -i ubuntu:15.10 /bin/bash
    在运行的容器内使用 apt-get update 命令进行更新。
    在完成操作之后,输入 exit 命令来退出这个容器。
    我们可以通过命令 docker commit 来提交容器副本
    docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
    各个参数说明:
        -m: 提交的描述信息
        -a: 指定镜像作者
        e218edb10161:容器 ID
        runoob/ubuntu:v2: 指定要创建的目标镜像名
    # 可以使用 docker images 命令来查看我们的新镜像 runoob/ubuntu:v2:
      

2、docker容器的使用

1)docker    # 查看docker的命令
2)docker pull ubuntu # 获取镜像,# 不指定版本号,默认为lasted
3)docker pull ubuntu:版本号 # 获取对应版本号的镜像
4)docker run -it Ubuntu /bin/bash # 启动镜像,
        -i 交互式操作
        -t 终端
        Ubuntu # Ubuntu镜像
        /bin/bash # 放在镜像名后的是命令,交互式的shell,因此用的是/bin/bash
4)操作结果 测试
➜ docker_demo : docker run -it --name docker_demo docker_demo:v3 /bin/bash   
root@3957e0472ec4:/usr/local/docker_demo# ls   # 运行之后,进入容器中,交互形式
dockerfile  requirements.txt  spider   # 容器workdir的目录
root@3957e0472ec4:/usr/local/docker_demo# 
root@3957e0472ec4:/usr/local/docker_demo# exit
exit
➜  docker_demo  # 退出终端    

5)docker ps -a   # 查看所有容器命令,包含启动已停止运行的容器
6)docker ps  # 查看所有正在运行的容器
7)docker start 3957e0472ec4 #  3957e0472ec4 镜像id, 启动一个已经停止的容器
8# docker服务在后台运行, -d 指定容器的运行模式
	docker run -itd --name docker_demo docker_demo:v3 /bin/bash  
    # 注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec
9# 停止容器
	docker stop <容器id>
10# 停止的容器可以通过restart重启
	docker restart <容器id>
11# 进入容器, 在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入
	docker attach   # 以attach形式进入终端,退出终端后,导致容器停止
    docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止
    # 测试 容器id:3823cfae385c
    ➜  docker_demo: docker exec -it 3823cfae385c /bin/bash 
	root@3823cfae385c:/usr/local/docker_demo# ls   # 已进入容器中
	dockerfile  requirements.txt  spider
	root@3823cfae385c:/usr/local/docker_demo# 
    root@3823cfae385c:/usr/local/docker_demo# exit
	exit
    ➜  docker_demo : # 已退出终端,退出终端, exec未导致容器停止
12# 导出和导入容器, 如果要导出本地某个容器,可以使用 docker export 命令。
	docker export 3823cfae385c > docker_demo_contain.tar  
    # 导出容器 3823cfae385c 快照到本地文件 docker_demo_contain.tar。 
    # 可以使用 docker import 从容器快照文件中再导入为镜像,
    # 以下实例将快照文件 docker_demo_contain.tar 导入到镜像 test/docker_demo:v4
    cat docker/docker_demo_contain.tar | docker import - test/docker_demo_contain:v4
    # 此外,也可以通过指定 URL 或者某个目录来导入,例如
    docker import http://example.com/exampleimage.tgz example/imagerepo
(13) # 删除容器使用 docker rm 命令
	docker rm -f <容器id>
    # 例如
	docker rm -f 1e560fca3906
    # 注意:删除容器时,容器必须是停止状态,否则会报如下错误
    Error response from daemon: You cannot remove a running container 	bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85. Stop the container before attempting removal or force remove
    # 先停止容器,然后再删除即可
14# 查询最后一次创建的容器
	docker ps -l 
15# 容器端口映射, -p 宿主机:容器
	docker run -d -p 5000:5000 training/webapp python app.py

三、dockerfile

1、文件指令
FROM   		#(指定基础镜像), 基础镜像可以为centos,python, alphin,
			# 例如:FROM python:3.8-slim 基于python的一个镜像
    
MAINTAINER 	# (指定维护者信息,可以没有) #标明著作人的名称和邮箱 
		   	# 例如:MAINTAINER lijing lambdajing@163.com
    
LABLE      	# 描述,标签

RUN 		# 你想让它干啥(在命令前面加上RUN即可)

ADD 		# 给它点创业资金(会自动解压tar)  制作docker基础的系统镜像

COPY 		# 复制文件(不会解压)rootfs.tar.gz, 需要指定解压

WORKDIR 	# 我是cd,今天刚化了妆(设置当前工作目录) 
			# 例如:WORKDIR /usr/local/docker_demo
    
VOLUME 		# 给它一个存放行李的地方(设置卷,挂载主机目录)# 设置宿主机的挂在地址

EXPOSE 		# 它要打开的门是啥(指定对外的端口)(-P 随机端口)

ENV 		# 环境变量(密码,其他信息)

CMD 		# 1、入口(指定容器启动后的要干的事情)(容易被docker run 后指定的启动命令替换)
			# 2、如果有多个CMD存在,则只执行最后一个CMD
    
ENTRYPOINT  # 入口1、容器启动后执行的命令(无法被docker run 后指定的启动命令替换,
			# 2、启容器的时候指定的命令(docker run 后指定的启动命令),会被当成参数)
			# 3、如果CMD与ENTRYPOINT同时存在,则CMD的命令会被当成ENTRYPOINT的参数

2、dockerfile 例子
# 基础镜像
FROM python:3.8-slim
#标明著作人的名称和邮箱
MAINTAINER lijing lambdajing@163.com
# 当前工作目录
WORKDIR /usr/local/docker_demo
# 挂在地址
VOLUME /home/lijing-home/docker_demo
COPY . /usr/local/docker_demo/
# 执行命令,安装包
RUN pip install -r /usr/local/docker_demo/requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
# 启动入口
CMD ["python", "/usr/local/docker_demo/spider/spider_aiqicha.py"]
3、dockerfile 构建镜像命令
	# docker_demo:v1 --> 镜像名:标签1)docker build -t docker_demo:v1 .
 	# 注意: 后方的 ”.“ 不可少
	# 如果(1)成功返回successful2)docker imags
    # 查看镜像是否存在构建的镜像,
3# 运行镜像,查看运行是否正常
 	docker run docker_demo:v1
3、保存构建后的镜像
(1) docker save -o docker_demo.tar docker_demo:v1 
	# docker_demo.tar 镜像tar文件,docker_demo:v1 镜像名与标签
4、加载镜像的tar文件
(1) docker load --input docker_demo.tar
	# docker_demo.tar为镜像的tar文件
5、加载成功后, 查看镜像是否加载成功
# 查看镜像是否在镜像里
docker images

四、dockercompose

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值