docker教程-安装与常用命令

1. docker介绍

​ Docker是基于Go语言实现的云开源项目。主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。解决了运行环境和配置问题的软件容器, 方便做持续集成并有助于整体发布的容器虚拟化技术。

docker官网:https://www.docker.com/

docker hub官网: https://hub.docker.com/

2. docker安装(Mac)

2.1 mac安装包下载与执行

下载Mac docker安装包: https://docs.docker.com/desktop/install/mac-install/
在这里插入图片描述
如同 macOS 其它软件一样,双击下载的 .dmg 文件,然后将鲸鱼图标拖拽到 Application 文件夹即可。

然后在应用中找到docker图标点击运行。

2.2 配置镜像加速器

登陆阿里云开发者平台,点击控制台,然后选择容器镜像服务,再获取加速器地址:在这里插入图片描述
配置:右上角docker图标,点击Perference..
在这里插入图片描述

2.3 hello world

执行命令docker run hello-world
在这里插入图片描述

2.4 为什么docker会比vm快?

(1)docker有着比虚拟机更少的抽象层。

由于docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。

(2)docker利用的是宿主机的内核,而不需要加载操作系统OS内核。

当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。

3 centos 7 安装docker

下载地址: https://docs.docker.com/engine/install/centos/

确定系统版本: cat /etc/redhat-release

卸载旧版本:

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

安装gcc相关软件:

sudo yum -y install gcc
sudo yum -y install gcc-c++

安装官网要求的yum-utils软件包:

sudo yum install -y yum-utils

设置镜像仓库:

sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum:

yum makecache fast

安装docker:

sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

启动:

sudo systemctl start docker

docker hello-world:

sudo docker version
sudo systemctl start docker
sudo docker run hello-world

卸载docker:

sudo systemctl stop docker
sudo yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

配置镜像加速器:

# 登陆阿里云账号,复制镜像加速器地址
sudo mkdir -p /etc/docker
vi /etc/docker/daemon.json
{
	"registry-mirrors":["镜像加速器地址"]

}

#然后重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

4 docker常用命令

帮助命令:

docker --help
# 查看具体命令的帮助文档
# docker 具体命令 --help
docker ps --help

镜像命令:

# 列出本地主机上的镜像, 常用OPTIONS: -a列出本地所有的镜像, -q只显示镜像id
docker images

# 查找镜像
docker search 镜像的名字

# 拉镜像, 如果没有TAG就默认拉最新的, 比如docker pull nginx 等价于 docker pull nginx:latest
docker pull 镜像的名字[:TAG]

# 查看镜像/容器/数据卷所占的空间
docker system df 

# 删除镜像
# 删除单个镜像
docker rmi -f 镜像ID
# 删除多个
docker rmi -f 镜像名1:TAG 镜像名2:TAG
# 删除全部
docker rmi -f $(docker images -qa)

# 导出镜像
docker save -o my-nginx.tar nginx:latest
# 导入镜像
docker load -i my-nginx.tar

docker虚悬镜像是什么?

仓库名、标签都是的镜像俗称虚悬镜像dangling image

容器命令:

# 新建 + 启动容器
docker run [OPTIONS] IMAGE [COMMAND] [AEG...]
常用OPTIONS:
	--name="容器名字"  为容器指定一个名称;
	-d  后台运行容器并返回容器id, 也就是启动守护式容器(后台运行);
	-i  以交互模式运行容器,通常与-t同时使用;
	-t	为容器重新分配一个伪终端,通常与-i同时使用;
	-P	大写,随机端口映射
	-p	小写,指定端口映射
		例子:
				-p hostPort:containerPort			端口映射 -p 8080:80
				-p ip:hostPort:containerPort 	配置监听地址 -p 10.0.0.100:8080:80
				-p ip::containerPort					随机分配端口 -p 10.0.0.100::80
				-p hostPort:containerPort:udp 指定协议		-p 8080:80:tcp
				-p 81:80 -p 443:443						指定多个
				
# 示例: docker run --name="my-centos3" -it  centos 

# 列出当前正在运行的容器
docker ps
常用OPTIONS:
		-a 列出当前所有正在运行的容器+历史上运行过的;
		-l 显示最近创建的容器;
		-n 最近n个创建的容器, 比如docker ps -n 5
		-q 静默模式,只显示容器编号;
		
# 启动已停止的容器
docker start 容器ID/容器名称

# 重启容器
docker restart 容器ID/容器名称

# 停止容器
docker stop 容器ID/容器名称

# 强制停止容器
docker kill 容器ID/容器名称

# 删除已停止的容器
docker rm 容器ID
# 一次删除多个容器
docker rm -rf $(docker ps -aq)
docker ps -aq | xargs docker rm

# 查看容器日志
docker logs -f 容器ID

# 查看容器内运行的进程
docker top 容器ID

#  查看容器信息
docker inspect 容器ID

#进入容器
# exec是在容器中打开新的终端,使用exit退出并不会导致容器的停止(推荐使用)
docker exec -it 容器ID bashShell
# 重新进入容器,exit退出会导致容器退出
docker attach 容器ID

# 从容器内拷贝文件到宿主机上
docker cp 容器ID:容器内路径  目的主机路径
docker cp b94895c52912:/usr/share/nginx/html/hello.txt ./

# 导出容器
docker export 容器ID > 文件名.tar
# 导入容器
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
cat my-container.jar | docker import - tudou/nginx:latest
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值