Docker安装与常用命令

Docker安装与常用命令

Docker是什么

简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,
然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,
相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

1.DockerClient客户端

2.Docker Daemon守护进程

3.Docker Image镜像

4.DockerContainer容器

起源

DockerPaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。
Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。

Docker安装

Docker官方文档
这个时候我们可以根据自己的需求选择要安装的版本,这里以centos为例:

1.更新yum源

yum makecache fast

2.卸载旧版本

旧版本的 Docker 被称为 或 .如果已安装这些项,请将其以及关联的依赖项一起卸载。dockerdocker-engine

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

3.使用存储库安装

设置存储库

sudo yum install -y yum-utils
#下面是官方的镜像地址 这里我们使用国内阿里云的镜像地址
sudo yum-config-manager \
   --add-repo \
   https://download.docker.com/linux/centos/docker-ce.repo
#阿里云
sudo yum-config-manager \
   --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.安装Docker引擎

安装最新版本的 Docker 引擎

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

5.启动Docker

sudo systemctl start docker

6.通过运行映像验证 Docker 引擎是否已正确安装。hello-world

sudo docker run hello-world

Docker卸载

1.卸载 Docker 引擎、CLI 和容器包:

sudo yum remove docker-ce docker-ce-cli containerd.io

2.主机上的映像、容器、卷或自定义配置文件不会自动删除。删除所有映像、容器和卷:

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

Docker常用命令

Docker常用命令官方地址
这里我总结了一下我常用的一些命令

Docker基本命令

设置docker开机启动

systemctl enable docker

启动docker

systemctl start docker

关闭docker

systemctl stop  docker

重启docker

systemctl restart docker

查看docker 运行状态

systemctl status docker

查看docker 版本号信息

docker info #详细信息
docker version/-v #基本信息

docker 帮助命令

docker --help
Docker镜像命令

查看自己服务器中docker 镜像列表

docker images

搜索镜像

docker search 镜像名
docker search --filter=STARS=9000 mysql 搜索 STARS >9000的 mysql 镜像

拉取镜像

docker pull 镜像名 
docker pull 镜像名:tag

运行镜像

docker run 镜像名
docker run 镜像名:Tag

删除镜像

#删除一个
docker rmi -f 镜像名/镜像ID

#删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)

Docker容器命令

查看正在运行容器列表

docker ps

查看所有容器列表

docker ps -a

制作一个容器

# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器 起的名字  /bin/bash  交互路径
docker run -it -d --name 要取的别名 -p 本机端口:映射端口 镜像名:Tag /bin/bash 

启动容器

docker start 容器名/容器ID

停止容器

docker stop 容器名/容器ID

重启容器

docker restart 容器ID/容器名

删除容器

#删除一个容器
docker rm -f 容器名/容器ID
#删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
#删除全部容器
docker rm -f $(docker ps -aq)

进入容器方式一

docker exec -it 容器名/容器ID /bin/bash #进入当前容器打开一个新的的终端

进入容器方式二 —推荐使用 exec 方式

docker attach 容器名/容器ID #进入当前容器打开的终端

退出容器

#-----直接退出  未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭  
exit
# 优雅提出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭
Ctrl + p + q

kill 容器

docker kill 容器ID/容器名

容器文件拷贝 —无论容器是否开启 都可以进行拷贝

#docker cp 容器ID/名称:文件路径  要拷贝到外部的路径   |     要拷贝到外部的路径  容器ID/名称:文件路径
#从容器内 拷出
docker cp 容器ID/名称: 容器内路径  容器外路径
#从外部 拷贝文件到容器内
docker cp 容器外路径 容器ID/名称: 容器内路径

查看容器日志

docker logs -f --tail=要查看末尾多少行 默认all 容器ID

启动容器时,使用docker run命令时 添加参数–restart=always 便表示,该容器随docker服务启动而自动启动

docker run -itd --name redis002 -p 8888:6379 --restart=always  redis:5.0.5 /bin/bash

容器数据卷

Mysql数据持久化

获取镜像

docker pull mysql:5.7

运行容器,需要做数据挂载。安装mysql,需要配置密码

官方测试

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

启动我们的

#说明
-d #后台运行
-p 本机端口:容器端口 #端口映射 
-v 本机地址:容器地址 #卷挂在
-e #环境配置
--name #容器名称
docker run -d -p 3310:3306 
-v /home/mysql/conf:/etc/mysql/conf.d 
-v /home/mysql/data:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=123123 --name mysql01 mysql:5.7
具名挂载和匿名挂载
#如何确定是剧名挂载还是匿名挂载
-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载 
-v /本机地址:容器地址 #指定路径挂载
--name #容器名称
docker run -d -p 3310:3306 
-v /home/mysql/conf:/etc/mysql/conf.d 
-v /home/mysql/data:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=123123 --name mysql01 mysql:5.7

拓展

#通过 -v 容器内路径:ro rw 改变读写权限
ro readonly #只读
rw readwirte #可读可写(默认)
docker run -d -p 3310:3306 
-v /home/mysql/conf:/etc/mysql/conf.d:ro mysql:5.7
docker run -d -p 3310:3306 
-v /home/mysql/conf:/etc/mysql/conf.d:rw mysql:5.7
# ro 说明这个路径只能通过宿主机来操作,容器内部是无法操作!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值