docker安装使用及基本命令

本文详细介绍了如何在CentOS7上安装Docker CE,包括使用阿里云镜像加速,以及Docker的基本命令如启动、停止、镜像管理和容器操作。此外,还展示了如何提交容器为新镜像以及数据卷的使用,确保数据持久化。
摘要由CSDN通过智能技术生成

安装(centos7 docker-ce)

    sudo yum install -y yum-utils   device-mapper-persistent-data   lvm2
    sudo yum-config-manager     --add-repo     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    sudo yum install docker-ce docker-ce-cli containerd.io

    sudo systemctl  start docker
    docker version
	

阿里云镜像加速(centos7)

具体配置在阿里云里面搜镜像加速,不同linux版本方式不同,分配的id也是每人独有

	cd /etc/docker/
    ll
    sudo tee /etc/docker/daemon.json<<-'EOF'
    {
    "registry-mirrors":["https://分配id.mirror.aliyuncs.com"]
    }
    EOF
    
    cat daemon.json 
    sudo systemctl daemon-reload 
    sudo systemctl restart docker

帮助命令

	docker --help
	docker run --help

镜像命令

	docker images
	docker search hello-world
	docker pull hello-world
	

容器命令

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

常用options:
–name:为容器指定name
-d:后台运行(启动守护容器),run命令返回容器id
-it:i交互模式,t为容器创建一个伪终端
-P:随机端口映射
-p:指定端口映射,格式包括
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort

docker run -it centos
#exit停止容器然后退出
#ctrl +p +q不停止退出

docker run -d centos
#立即退出,因为该容器没有 任何交互
#不退出需要有任务 docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 10; done; "

docker ps [options]
默认显示当前运行的容器
常用options:
-a:显示所有运行的或已停止的container
-l:显示上次运行的container
-n 3:显示上3次
-q:只显示container编号

docker start 容器id或name
docker restart 容器id或name
docker stop 容器id或name 正常关闭container
docker kill 容器id或name立刻关闭
docker rm 容器id或name删除停止的容器 删除正在运行的rm -f

docker rm -f ${docker ps -qa}
docker ps -qa |xargs docker rm -f

docker logs -f -t 容器id/name

docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 10; done; "

[docker@VM-0-17-centos root]$ docker logs -tf --tail 3 admiring_allen
2021-01-07T03:14:04.946527830Z hello world
2021-01-07T03:14:14.947424003Z hello world
2021-01-07T03:14:24.948334640Z hello world
2021-01-07T03:14:34.949263929Z hello world

docker top 容器id/name 查看容器内部进程
docker inspect 容器id/name 查看容器内部细节(json格式)
docker attach 容器id/name 重新进入一个后台运行的container
docker exec 容器id/name [cmd] 不进入容器执行容器内部命令并返回结果

[docker@VM-0-17-centos root]$ docker exec pensive_kilby ls -al /
total 56
drwxr-xr-x  1 root root 4096 Jan  7 02:29 .
drwxr-xr-x  1 root root 4096 Jan  7 02:29 ..
-rwxr-xr-x  1 root root    0 Jan  7 02:29 .dockerenv
lrwxrwxrwx  1 root root    7 Nov  3 15:22 bin -> usr/bin
drwxr-xr-x  5 root root  360 Jan  7 02:29 dev
drwxr-xr-x  1 root root 4096 Jan  7 02:29 etc
drwxr-xr-x  2 root root 4096 Nov  3 15:22 home
lrwxrwxrwx  1 root root    7 Nov  3 15:22 lib -> usr/lib
lrwxrwxrwx  1 root root    9 Nov  3 15:22 lib64 -> usr/lib64
drwx------  2 root root 4096 Dec  4 17:37 lost+found
drwxr-xr-x  2 root root 4096 Nov  3 15:22 media
drwxr-xr-x  2 root root 4096 Nov  3 15:22 mnt
drwxr-xr-x  2 root root 4096 Nov  3 15:22 opt
dr-xr-xr-x 97 root root    0 Jan  7 02:29 proc
dr-xr-x---  2 root root 4096 Dec  4 17:37 root
drwxr-xr-x 11 root root 4096 Dec  4 17:37 run
lrwxrwxrwx  1 root root    8 Nov  3 15:22 sbin -> usr/sbin
drwxr-xr-x  2 root root 4096 Nov  3 15:22 srv
dr-xr-xr-x 13 root root    0 Jan  7 02:29 sys
drwxrwxrwt  7 root root 4096 Dec  4 17:37 tmp
drwxr-xr-x 12 root root 4096 Dec  4 17:37 usr
drwxr-xr-x 20 root root 4096 Dec  4 17:37 var

docker cp 容器id/name [cmd] 将容器内文件拷贝至服务器

[docker@VM-0-17-centos home]$ docker cp pensive_kilby:/tmp/yum.log /home/docker
[docker@VM-0-17-centos home]$ ls -al /home/docker/
total 36
drwx------  4 docker docker 4096 Jan  7 11:59 .
drwxr-xr-x. 3 root   root   4096 Jan  4 10:36 ..
-rw-------  1 docker docker 4018 Jan  7 11:59 .bash_history
-rw-r--r--  1 docker docker   18 Apr  1  2020 .bash_logout
-rw-r--r--  1 docker docker  193 Apr  1  2020 .bash_profile
-rw-r--r--  1 docker docker  231 Apr  1  2020 .bashrc
drwxrwxr-x  3 docker docker 4096 Jan  4 10:37 .cache
drwxrwxr-x  3 docker docker 4096 Jan  4 10:37 .config
-rw-------  1 docker docker  651 Jan  5 15:56 .viminfo
-rw-r--r--  1 docker docker    0 Jan  7 11:58 yum.log

提交容器成为新镜像

docker commit -m=“commit msg” -a=“author” groupNm/imageNm:tag name

容器数据卷(容器数据持久化、宿主机&容器数据共享)

1.-v命令添加

1.docker run -it -v /宿主机绝对路径:/容器内路径 image
2.首先查看挂载是否成功,然后查看bind
docker inspect containerId
3.宿主机和容器可以数据共享,即便容器停止,再次启动后数据依然同步
4.带权限(read only)
docker run -it -v /宿主机绝对路径:/容器内路径:ro image

2.dockerfile添加

From centos
VOLUME ["/dataVolContainer"]
CMD /bin/bash

3.–volumes-from容器间传递数据卷

docker run -it --name dc02 --volumes-from dc01 centos
注:容器之间数据卷的传递,数据卷的生命周期一直持续到没有任何一个容器使用它为止

Dockerfile 构建镜像

FROM J基础镜像
MAINTAINER 维护者信息
RUN 额外执行命令
EXPOSE 暴露服务端口号
WORKDIR 指定登录容器后的工作目录
ENV 设置环境变量,后续指令可以应用这些环境变量
ADD 构建docker镜像时把某个压缩包拷贝进上下文并解压
COPY 类似ADD,将源路径内容拷贝到镜像内目标路径
VOLUME 建立容器数据卷
CMD 指定一个容器启动时要运行的命令
ENTRYPOINT 指定一个容器启动时要运行的命令,方式为追加

##myip1
FROM centos
RUN yum install -y curl
CMD ["curl","-s","http://ip.cn"]
#默认centos镜像源不带curl
#执行成功,但运行容器的docker run语句不能再带参数,否则原CMD指令会被覆盖

##myip2
FROM centos
RUN yum install -y curl
ENTRYPOINT ["curl","-s","http://ip.cn"]
#若run带参数,例如docker run -it myip1:0.1 -i
#相当于ENTRYPOINT追加参数 ["curl","-s","-i",http://ip.cn"]

ONBUILD 构建一个被继承的Dockerfile时运行,父镜像在被继承时触发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值