Docker 基本命令 镜像:(镜像,从认识上简单的来说,就是面向对象中的类,相当于一个模板。从本质上来说,镜像相当于一个文件系统。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。)
查看本地所有镜像:
docker images
docker images -q # 查看所用镜像ID
查找镜像:
docker search Redis拉取镜像:
docker pull Redis:5.0 # 不指定版本默认为最新,查找版本可以去 https://hub.docker.com/删除镜像:
docker rmi镜像ID # 删除指定镜像
docker rmi`docker images -q` # 删除所有镜像docker文件创建镜像:
docker build-t 【image name】镜像标签:
docker tage 【image ID】【image name】更新镜像:启动镜像后
apt-get update
容器:(容器,从认识上来说,就是类创建的实例,就是依据镜像这个模板创建出来的实体。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。)
查看正在运行的容器:
docker ps
查看所有容器:
docker ps-a构建容器:
docker run -it 【镜像ID】 /bin/bash
docker run -it --name mycentos docker.io/centos:7 /bin/bash
参数说明:
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d: 守护(后台)模式运行容器,并返回容器ID;需要使用docker.exec进入容器,退出后,容器不会关闭;
-it: 创建的容器一般为交互式容器;
-id: 创建的容器一般为守护式容器;
--name="nginx-lb": 为容器指定一个名称。运行一个在后台执行的容器,同时,还能用控制台管理:
docker run -it -d ubuntu:latest
运行一个带命令在后台不断执行的容器,不直接展示容器内部信息:
docker run -d ubuntu:latest ping www.docker.com
运行一个在后台不断执行的容器,同时带有命令,程序被终止后还能重启继续跑,还能用控制台管理:
docker run -d --restart=always ubuntu:latest ping www.docker.com
为容器指定一个名字:
docker run -d --name=ubuntu_server ubuntu:latest
容器暴露80端口,并指定宿主机80端口与其通信(之前是宿主机端口,之后是容器需暴露的端口):
docker run -d --name=ubuntu_server -p 80:80 ubuntu:latest
指定容器内目录与宿主机目录共享(之前是宿主机文件夹,之后是容器需共享的文件夹):
docker run -d --name=ubuntu_server -v /etc/www:/var/www ubuntu:latest启动容器:
docker start 容器ID
docker start 容器名进入容器: # 退出容器,容器不会关闭
docker exec -it 容器ID/bin/bash
docker exec -it 容器名/bin/bash停止容器:
docker stop 容器ID
docker stop 容器名重命名:
docker rename 原容器名新容器名删除容器:# 如果容器删除失败,需要先停止,才能删除
docker rm 容器ID
docker rm 容器名
docker rm `docker ps-aq`
查看容器信息:
docker inspect 容器名
文章图片
容器中的管理数据主要有两种方式:
数据卷(Data Volumes)
数据卷是宿主机中的一个目录或文件。容器目录与数据卷目录绑定后,对方的绑定会立即同步。一个数据卷可以被多个容器载,一个容器也可以挂载多个数据卷。对数据卷的更新,不会影响镜像。数据卷 默认会一直存在,即使容器被删除。作用:容器数据持久化,外部机器与容器通信,容器之间数据交互。
数据卷容器(Data Volume Containers)
如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载。
1、Docker 安装
1.更新apt包索引
yum update
2.安装一些必要的系统工具:
yum install -y yum-utils device-mapper-persistent-data lvm2
3.添加软件源信息:
yum -y install yum-utils #安装yum-config-manager命令对应工具
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新 yum 缓存:
yum makecache fast
5.安装 Docker-ce:
yum -y install docker-ce
6.启动 Docker 后台服务
systemctl start docker
7.测试运行 hello-world
docker run hello-world
由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。
8.查看docker的镜像
docker images9.设置Docker开机启动
systemctl enable docker
1.1、配置阿里云免费的镜像加速器(阿里云为每个用户配置了不同的镜像加速器,并提供配置教程)
2、About Docker 2.1、Docker 镜像如何制作?
(1).容器转镜像
容器转镜像:
docker commit 容器ID 镜像名:版本号镜像转成文件:
docker save -o 压缩文件名称 镜像名:版本号文件转成镜像:
docker load -i 压缩文件名称
(2).Dockerfile
Dockerfile 是一个文本文件。包含了一条条的指令,每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像。对于开发人员:可以为开发人员提供一个完全一个的开发环境。对于测试人员:可以直接拿开发时构建的镜像或Dockerfile 文件构建一个新的镜像开始工作。对于运维人员:在部署的时候,可以实现应用的无缝移植。
3、使用 Docker 搭建 MySQL 服务 1.拉取官方镜像(我们这里选择5.7,如果不写后面的版本号则会自动拉取最新版)
docker pull mysql:5.7# 拉取 mysql 5.7
docker pull mysql# 拉取最新版mysql镜像
2.检查是否拉取成功
docker images
3.创建Mysql目录
cd /opt # 具体路径可根据自我喜好
mkdir mysql
cd mysql
【服务器|一文玩转 Docker】4.一般来说数据库容器不需要建立目录映射
docker run -p 3306:3306 --name c_mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
- –name:容器名,此处命名为c_mysql
- -e:配置信息,此处配置c_mysql的root用户的登陆密码
- -p:端口映射,此处映射 主机3306端口 到 容器的3306端口
- -d:源镜像名,此处为 mysql:5.7
5.如果要建立目录映射($PWD表示当前路径,\表示换行输入)
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/conf:/etc/mysql \
-v /mydata/mysql/logs:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
- linux命令结尾加了“\”意为将最后的回车换行给注释了,系统理解为命令还没有结束,因而是继续等待用户进行输入,直到读到结束符,如回车。
- -v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录。
docker container ls
- 可以看到容器ID,容器的源镜像,启动命令,创建时间,状态,端口映射信息,容器名字。
进入docker本地连接mysql客户端
docker exec -it c_mysql /bin/bash
mysql -uroot -proot
未完,待持续更新…
推荐阅读
- docker|docker
- 笔记|共享内存 设计原理-shm
- 多线程|简单的聊天应用程序(多客户端聊天服务器) from multithread
- Android中实现OkHttp上传文件到服务器并带进度
- Android后端服务器的搭建方法
- centos 7 安装appache 服务器
- ConsulManager应用场景2(如何优雅的使用Consul管理Blackbox站点监控)
- 服务器|闲置安卓手机改造linux服务器
- 网时粉丝经济下的APP以服务器为基础