Docker 相关概念和命令

1. 镜像,容器,仓库 三者之间的关系

在这里插入图片描述

2. 登录命令行登录docker

# 登录docker
docker login docker.io
# 查看保持在机器上的密码
cat /root/.docker/config.json
# 解码查看用户名密码
echo "编码后的用户名密码" | base64 -d

3. 搜索镜像

docker search 镜像名
docker search alpine # linux的一个发行版

4. 拉取镜像

docker pull alpine # 拉取镜像,默认拉取最新版本的镜像
docker pull alpine:3.14.1 # 拉取指定版本的镜像
docker pull docker.io/library/alpine:3.14.1 #可以写全,分别是 registry_name, repository_name, image_name 如果自己私有仓库,需要写全

5. 查看本地镜像

docker images
docker image ls 

6. 给镜像打标签

docker tag 021b3423115f docker.io/${repository_name}/alpine:3.14.1 # 021b3423115f  这个为镜像id

7. 推送镜像到docker仓库

docker push docker.io/${repository_name}/alpine:3.14.1

8. 删除镜像

docker rmi docker.io/${repository_name}/alpine:3.14.1 # 执行untagged操作
docker rmi images_id # 删除镜像
docker rmi -f images_id #强制删除镜像

9. docker 镜像特性

在这里插入图片描述

  • docker镜像位于bootfs之上
  • 每一层镜像的下面一层称为其父镜像
  • 第一层镜像为Base Image
  • 容器在最顶层

10. 列出本地容器启动的进程

docker ps # 只列出活动的
docker ps -a # 列出所有的

11. 启动容器

命令格式:docker run [OPTIONS] IMAGE [CoMMAND] [ARG]
OPTIONS: 选项
-i : 表示启动一个可交互的容器,并持续打开标准输出
-t : 表示使用终端关联到容器的标准输入输出上
-d : 表示将容器放置在后台运行
–rm: 退出后即删除容器
–name: 表示容器唯一名称
IMAGE: 表示要运行的镜像
COMMAND: 表示启动容器时要运行的命令

docker run -it docker.io/library/alpine:latest /bin/sh

# 进入容器之后,可以执行如下命令
ip add
cat /etc/issue 

# 容器运行完成后,删除容器
docker run --rm docker.io/library/alpine:latest /bin/echo hello

# 非交互式启动一个后台容器
docker run -d --name myalpine docker.io/library/alpine:latest /bin/sleep 300

12. 进入一个 处于up状态的容器

docker exec -it container_id /bin/sh

13. 启动、停止、重启一个容器

docker start/stop/restart container_id

14. 删除容器容器的脚本

# 删除退出容器的脚本
for i in `docker ps -a|grep -i exit|awk '{printf $1}'`; do docker rm -rf $i; done

15. 将容器的修改,提交到镜像

# 将容器 myalpine 提交成镜像 docker.io/${repository_name}/alpine:v3.14.1_with_1.txt,这样对 myalpine做的修改,可以保存起来。不会因为myalpine的退出而丢失修改
docker commit -p myalpine docker.io/firebirdid/alpine:v3.14.1_with_1.txt
# 然后以提交的镜像,再次启动一个容器
docker run -d --name myalpine2 docker.io/firebirdid/alpine:v3.14.1_with_1.txt /bin/sleep 300
# 进入容器,可以看到对 myalpine 做的修改,已经在myalpine2 中可以看到了
docker exec -it myalpine2 /bin/sh

16. 导入导出镜像

# 导出镜像
docker save image_id > xxx.tar
# 导入镜像
docker load < xxx.tar

17. 查看容器的日志

# 查看容器日志
docker logs container_id
# 相当于tail -f 命令
docker logs -f container_id

18. 端口映射,暴露端口

docker run -p 外部端口:内部端口
docker run --rm --name mynginx -d -p 81:80 nginx:v1.12.2

19. 容器开机自启动

docker update container_id --restart=always

20. 挂载数据卷,使用-v参数

wget www.baidu.com -O index.html
docker run --rm --name nginx -d -p81:80 -v/home/dockervm/html:/usr/share/nginx/html nginx:v1.12.2

21. 传递环境变量

docker run -e 环境变量的key:环境变量的value
# printenv 打出环境变量的值
docker run -e E_OP:abdedf --rm nginx:v1.12.2 printenv

22. 容器内安装软件

docker exec -it nginx /bin/bash
tee /etc/apt/sources.list << EOF
deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
EOF
apt-get update && apt-get install curl -y

容器中安装完成软件后,可以固化从镜像,然后可以将镜像推送到 dockerhub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值