docker常用命令整理

Docker 包括三个基本概念:
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。


一、安装

1. 安装地址 https://www.docker.com/products/docker-desktop/#/windows
2. 官方安装脚本自动安装:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
3. 使用国内 daocloud 一键安装命令:curl -sSL https://get.daocloud.io/docker | sh
4. 遇到问题:
    (1)没有yum模块,是因为yum与python相互依赖,vim /usr/bin/yum,将第一行解释器改为自己想使用的python,如#!/usr/bin/python3


二、基本命令

0. 查看本机上所有容器

docker ps -a

1. 启动docker
systemctl start docker.service

systemctl status docker.service

systemctl stop docker.service

2. docker run ubuntu:15.10 /bin/echo "Hello world"
命令解释:一次性执行,Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。

3. docker run -i -t ubuntu:15.10 /bin/bash
命令解释:进入容器,-i,允许对容器内输入进行交互,-t,在新容器内指定一个终端

4. docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
命令解释:-d,启动容器(后台模式),创建一个以进程方式运行的容器,响应容器id,唯一的

5. docker logs 2b1b7a428627(容器id或容器名称)
命令解释:查看容器内的标准输出

6. docker stop 2b1b7a428627(容器id或容器名称)
命令解释:停止容器

7. 多端口映射、路径映射新建容器命令

docker run -it -d -p 8000:8000 -p 5432:5432 -v /usr/dev/teamo:/home/project --name <新容器名>  <镜像名>

8. 提交容器为新镜像

docker commit <容器名>  <镜像名>


三、docker容器使用

1.  docker pull ubuntu
命令解释:我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入ubuntu镜像

2. docker run -itd --name ubuntu-test ubuntu /bin/bash
命令解释:创建容器,docker 的服务在后台运行,想进入容器,使用docker exec,因为此命令会退出容器终端,但不会导致容器的停止,docker exec -it 243c32535da7 /bin/bash。

(1)创建:docker run -it -d  --name django_container ubuntu:20.04 
(2)进入: docker exec -it django_container bash

3. docker export 1e560fca3906 > ubuntu.tar
命令解释:导出本地某个容器,导出容器 1e560fca3906 快照到本地文件 ubuntu.tar

4. cat docker/ubuntu.tar | docker import - test/ubuntu:v1
命令解释:使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1

5. docker rm -f 1e560fca3906
命令解释:删除容器

6. docker pull training/webapp
命令解释:载入一个python的flask镜像,构建一个web应用程序

7. docker run -d -P training/webapp python app.py

命令解释:运行flask,-P,将容器内部使用的网络端口随机映射到我们使用的主机上

7.1 docker run -d -p 5000:5000 training/webapp python app.py

也可以使用-p,指定端口PORTS,0.0.0.0:49153->5000/tcp,Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 49153上,我们可以通过浏览器访问WEB应用

8. docker logs -f bf08b7f2cd89
命令解释:查看web日志,-f 参数类似于 tail -f

四、镜像使用

1. docker images
命令解释:列出本地主机上的镜像

2. docker search httpd
命令解释:查找镜像

3. docker rmi ubuntu:15.10
命令解释:删除镜像

当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
    1、从已经创建的容器中更新镜像,并且提交这个镜像
    2、使用 Dockerfile 指令来创建一个新的镜像

4. docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
命令解释:更新镜像,创建一个容器,按需求修改后,提交容器副本,-m: 提交的描述信息,-a: 指定镜像作者,e218edb10161:容器 ID,runoob/ubuntu:v2: 指定要创建的目标镜像名


五、容器连接

1. docker run -d -p 127.0.0.1:9998:5000 training/webapp python app.py
命令解释:指定容器绑定的网络地址,端口,容器端口 5000 绑定主机端口9998,可以通过访问 127.0.0.1:9998来访问容器的5000端口(默认绑定tcp)

2. docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
命令解释:同上1,绑定udp

3. docker port sharp_kapitsa 5000
命令解释:查看名称为sharp_kapitsa的容器,端口的绑定情况

4. 容器互联
(1)容器命名:docker run -d -P --name rename_flask training/webapp python app.py
        命令解释:参数--name
(2)新建网络:docker network create -d bridge test-net
        命令解释:参数-d:参数指定 Docker 网络类型,有 bridge、overlay,test-net:网络名称
(3)docker network ls
        命令解释:列出所有网络
(4)测试容器连接示例
        1)docker run -itd --name test1 --network test-net ubuntu /bin/bash
        2)docker run -itd --name test2 --network test-net ubuntu /bin/bash
        3)docker exec -it test1 /bin/bah
        4)ping test2


六、docker仓库管理

1. docker hub:  https://hub.docker.com

2. docker login: 登录

3. docker logout: 退出

4. docker push username/ubuntu:18.04: 推送镜像到docker hub


七、Docker Dockerfile

1. Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

FROM        # 基础镜像,一切从这里开始构建
MAINTAINER    # 镜像是谁写的:姓名+邮箱
RUN            # 镜像构建的时候需要运行的命令
ADD            # 步骤:tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR        # 镜像的工作目录
VOLUME        # 挂载的目录
EXPOSE        # 暴露端口配置
CMD            # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT    # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD        # 当构建一个被继承DockerFile这个时候就会运行ONBUILD的指令。触发指令。
COPY        # 类似ADD,将我们文件拷贝到镜像中
ENV            # 构建的时候设置环境变量!

八、docker文件上传与下载


    1. 复制容器内文件到本地
    docker cp 容器ID:目标文件路径 本地文件路径
    2. 复制本地文件到容器
    docker cp 本地文件路径 容器ID:容器内文件夹

九、使用示例

1. ubuntu20.04中,安装python3

过程中,时区输入,Asia,Shanghai

apt update
apt install software-properties-common
add-apt-repository ppa:deadsnakes/ppa
apt install python3.6 python3-pip


    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值