镜像
镜像
仓库
仓库
tar文件
tar文件
容器
容器
Dockerfile
Dockerfile
run
run
commit
commit
build
build
push
push
pull
pull
load
load
save
save
Viewer does not support full SVG 1.1

docker在线版 (opens new window),每次申请可使用4个小时,本文所有的示例都是在它基础上实现。

# 名词解释

# 仓库

Docker Hub (opens new window)是Docker官方维护的一个仓库,用来存储镜像。

# 镜像

类似于已经打包好的代码,如系统安装所需的iso文件。

# 容器

镜像文件运行在容器中,可以理解为一个虚拟机。

# Dockerfile

Dockerfile是Docker的配置文件,通过这个配置文件能够获取到相应的镜像。

# tar文件

镜像文件保存后便形成了一个tar文件。

# 基础命令

# pull

docker pull mysql

从docker仓库中拉取mysql镜像,默认拉取的是最新版本镜像,在镜像后面加上":latest"同效果,其他版本镜像一次类推。

# images

docker images

查看本地有哪些镜像。

# run

docker run -d -it -name mysql-test -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql

run指令运行本地的镜像,-d代表后台运行 -it代表代表是可交互,-e代表设置容器中的环境变量,-p代表运行的端口,mysql代表将要运行的镜像。--name也可以不指定,也会随机生成一个名字。

# ps

#列出所有在运行的容器名称
docker ps
#列出所有的容器
docker ps -a

使用上述命令可以查看容器是否在运行之中。

# exec

docker exec -it 593b87f33c7b bash

进入容器的内部操作,-it代表交互式的,对该容器执行bash命令,593b87f33c7b代表容器号,即CONTAINER ID,镜像通过run命令进行运行状态,会在下面展示完整的ONTAINER ID,也可以通过ps进行查看。

基础的使用,基本上只涉及到上面几个操作。但是对于镜像的制作还需要一些时间去学习。

# stop

停止一个正在运行的容器。

docker stop xxxxx

# rm

删除容器,需要注意的是,容器的状态需要是停止状态,运行中的容器不可用这条命令删除。

docker rm xxxxx

# 示例

# mysql

#拉取mysql镜像
docker pull mysql
#运行mysql镜像 密码为123456
docker run -d -it --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
#进入运行mysql的容器内部
docker exec -it xxxxxx bash
#登陆mysql
mysql -uroot -p

上述进入mysql的容器中,当存在对汉字操作的时候可能会出现汉字异常无法出现的情况,此时只需要在进入容器的时候制定字符集即可。

docker exec -it -e LANG=C.UTF-8 xxxxxx bash

# nginx

#拉取nginx镜像
docker pull nginx
#运行nginx镜像
docker run -d --name nginx-test -p 80:80 nginx
#进入运行nginx的容器内部
docker exec -it xxxxxx bash

# ubuntu

#拉取ubuntu镜像
docker pull ubuntu
#运行ubuntu镜像
docker run -itd ubuntu
#进入运行ubuntu镜像容器的内部
docker exec -it xxxxxx bash