docker

Docker的安装

以ubuntu安装为例子

1、如果安装过需要先卸载

yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-engine

2、安装命令

sudo apt-get update

3、安装几个工具软件

#  \ 符号为 续行符号,表示继续到下一行。
sudo apt-get install \
	apt-transport-https \
	ca-certificates \
	curl \
	gnupg \
	lsb-release

4、添加Docker的官方GPG key

gpg:用来验证软件的真伪

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

5、再次安装Docker

更新系统
sudo apt-get update
下载docker-ce软件
sudo apt-get install docker-ce docker-ce-cli containerd.io -y

6、验证是否安装成功

验证是否有该进程
ps aux | grep docker
进行一个docker容器
sudo docker run hello-world
检测是否为最新版本
docker version

Docker 镜像

镜像

Docker运行容器前需要本地对应的镜像。如果镜像不存在,docker会去镜像仓库中下载

获得镜像

可以用docker pull 命令来从仓库获取需要的镜像

举例:从Docker Hub仓库中下载Ubuntu镜像

root@hecs-230231:~# docker pull ubuntu:latest
latest: Pulling from library/ubuntu
7b1a6ab2e44d: Pull complete
Digest: sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

image-20231014164700219

下载过程中,会输出获取镜像的每一层的信息。

该命令等价于docker pull registry.hub.docker.com/ubuntu:latest命令,即从注册服务器registry.hub.docker.com中的ubuntu仓库来下载latest的镜像。

有时候官方仓库注册服务器下载比较慢,可以从其他仓库中下载。以阿里云镜像加速为例,配置流程:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://<个人的地址号>.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

列出本地镜像

使用docker images 显示出本地已有的镜像

root@hecs-230231:~# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    9c7a54a9a43c   5 months ago    13.3kB
ubuntu        latest    ba6acccedd29   24 months ago   72.8MB
root@hecs-230231:~#

显示出的字段信息

  • REPOSITORY : 来源哪个仓库,如ubuntu
  • TAG :镜像的标签, 如latest
  • IMAGE ID : 镜像ID (唯一)
  • CREATED:创建时间
  • SIZE :镜像大小

启动镜像

1、docker run -ti ubuntu:latest /bin/bash

2、docker run -ti ba6acccedd29 /bin/bash

上传镜像

  1. 登录docker。 使用docker login 命令登录docker

image-20231015102014384

​ 2.通过 docker push 命令上传镜像

镜像命令

docker images  #查看所有本地主机的镜像
docker search 镜像名   #搜索镜像
docker pull 镜像名 [标签]  #下载镜像(如果不写tag,默认是latest)
docker rmi 镜像名 [标签]   #删除镜像    docker rmi -f $(docker images -aq)  删除全部镜像
docker tags  镜像名:版本   新镜像名:版本    #复制镜像并且修改名称
docker commit  -a "xxx"  -c "xxx" 镜像ID 名字:版本   #提交镜像 
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;

docker load -i    /xxx/xxx.tar   #导入镜像
docker save -o   /xxx/xxx.tar    #保存一个镜像为一个tar包

Docker 容器

Docker 基本命令

docker images

​ 获取本地所有的镜像

image-20231015102901183

docker info

​ 获取docker所有的基本信息

image-20231015102952231

在docker hub中搜索nginx 镜像
docker search  nginx  

docker log

查看一个镜像的日志

docker log 【镜像名】

容器命令

docker run 
	语法:dockers run [可选参数] 镜像名
    #参数说明
     --name = "Name" 容器名字
     -c 后面跟待完成的命令
     -d 以后台的方式运行并且返回ID,启动守护进程式容器
     -i 使用交互方式运行容器,通常与t同时使用
     -t 为容器重新分配一个伪终端
     -p 指定容器端口
     -P 随机指定端口
     -v 给容器挂载存储卷





docker build  #创建镜像       

 -f:指定dockerfile文件路径   -t:镜像名字以及标签
docker logs 容器实例的ID          #查看容器日志
docker rename 旧名字  新名字      #给容器重新命名
docker top    容器实例的ID       #查看容器内进程
docker ps -a    #列出所有容器(不加-a就是在运行的)
docker rm      容器实例的ID   #删除容(正在运行容器不能删除,除非加-f选项)
docker kill  容器实例的ID        #杀掉容器
docker history   容器实例的ID    #查看docker镜像的变更历史
docker start 容器实例的ID        #启动容器
docker restart 容器实例的ID       #重启容器
docker stop 容器实例的ID         #停止正在运行的容器
docker attach /docker exec  容器实例的ID   
#同为进入容器命令,不同的是attach连接终止会让容器退出后台运行,而exec不会。并且,docker attach是进入正在执行的终端,不会情动新的进程,而docker exec则会开启一个新的终端,可以在里面操作。
docker image inspect  容器名称:容器标签       #查看容器内源数据
docker cp  容器id:容器内路径   目的主机路径           #从容器内拷贝文件到主机(常用)或者从主机拷贝到容器(一般用挂载)
exit                           #直接退出容器 
crlt + P + Q                   #退出容器但是不终止运行
posted @ 2023-10-16 18:12  Zncoro  阅读(4)  评论(0编辑  收藏  举报