新手零基础快速入门Docker

Docker学习

前言

今天第一次学习docker,跟着一位up主的视频进行了练习,把一些视频中讲到的内容记录了下来,并结合菜鸟教程中docker教程写下本文。

本文是我零基础入门docker的第一篇文章,供大家参考,自身实力不足,难免出现纰漏,恳请指出,希望大家共同努力,一起变强!

什么是docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

如何练习

Play With Docker( PWD )是一个利用云主机搭建的在线实验环境,具有开源免费、 Web 端友好、指引步骤详细、开箱即用等特性,用户可以构建、运行Docker容器,甚至可以在Docker Swarm模式下创建集群。

https://labs.play-with-docker.com/

新手常见命令

docker pull在这里插入图片描述

docker pull : 从镜像仓库中拉取或者更新指定镜像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

docker pull nginx

完成从仓库 通过pull 构建成镜像

docker images查看镜像

​ 查看有哪些镜像

docker run创建容器

docker run -d -p 80:80 nginx

​ 创建一个新的容器并运行一个命令

语法docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

-d 为后台运行容器 返回容器ID

-p 指定端口映射 主机端口:容器端口

​ 用docker run -d -p 81:80 nginx可以创建一个新的外部端口映射到相同的容器端口,打开的页面相同

以命令行模式进入容器

$ docker run -it ubuntu /bin/bash

参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
docker ps查看运行的容器

​ 查看正在运行的容器

在这里插入图片描述

docker exec执行命令

​ exec命令退出容器终端,不会导致容器的停止

​ 在运行的容器中执行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

OPTIONS说明:

  • -d 分离模式: 在后台运行
  • **-i ** 即使没有附加也保持STDIN 打开
  • -t **分配一个伪终端
容器的进入与退出
##### 进入bash界面

docker exec -it 90 bash (90为CONTAINER ID的前两位)

docker exec -it 90 /bin/bash

不知上述两种方法是否等价

​ 进入容器后 使用linux命令

ls

cd /usr/share/nginx/html/

​ 显示html文件

cat index.html

​ cat的作用是显示整个文件

echo hello >index.html

​ 修改文件

打开80端口的html文件 发现页面被修改 81保持不变

bash参考资料

在容器中以root@c0c.....:/#开头

exit退出容器

exit

或者使用CTRL+D

root@IP:~# 表明我们已经退出了当前的容器,返回到当前的主机中。

docker stop停止容器

docker stop c0(container id)

docker rm -f删除容器

​ 强制删除容器

docker commit 指定镜像名字

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

​ 实例

将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。

runoob@runoob:~$ docker commit -a "runoob.com" -m "my apache" a404c6c174a2  mymysql:v1 
sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057
runoob@runoob:~$ docker images mymysql:v1
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mymysql             v1                  37af1236adef        15 seconds ago      329 MB

dockerfile

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

#### 新建dockerfile文件

vim Dockerfile

​ vim操作不会的自行搜索

​ 输入如下内容

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yCQwKUly-1617546827392)(C:\Users\Zilong\AppData\Roaming\Typora\typora-user-images\image-20210404200510834.png)]

创建主页

vim index.html

docker build

docker build -t name2 .

​ 用docker images查看镜像 发现已经创建name2的镜像

使用 docker run -d -p 91:80 name2 运行镜像

通过91号端口即可进入新的容器html主页

docker save 保存容器到镜像

docker save name2 > 1.tar

docker load

​ 导入使用 docker save 命令导出的镜像。

docker load < 1.tar

参考资料

docker10分钟入门

docker菜鸟教程

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值