Docker入门

镜像镜像仓库仓库tar文件tar文件容器容器DockerfileDockerfilerunruncommitcommitbuildbuildpushpushpullpullloadloadsavesaveViewer does not support full SVG 1.1

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

# 名词解释

# 仓库

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

# 镜像

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

# 容器

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

# Dockerfile

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

# tar文件

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

# 基础命令

# pull

1
docker pull mysql

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

# images

1
docker images

查看本地有哪些镜像。

# run

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

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

# ps

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

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

# exec

1
docker exec -it 593b87f33c7b bash

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

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

# stop

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

1
docker stop xxxxx

# rm

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

1
docker rm xxxxx

# 示例

# mysql

1
2
3
4
5
6
7
8
#拉取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的容器中,当存在对汉字操作的时候可能会出现汉字异常无法出现的情况,此时只需要在进入容器的时候制定字符集即可。

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

# nginx

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

# ubuntu

1
2
3
4
5
6
#拉取ubuntu镜像
docker pull ubuntu
#运行ubuntu镜像
docker run -itd ubuntu
#进入运行ubuntu镜像容器的内部
docker exec -it xxxxxx bash
Licensed under CC BY-NC-SA 4.0