Docker快速上手指南
1 获取镜像
docker pull nginx
docker pull nginx:latest
2 查看本地镜像
docker images
3 运行镜像
docker run -d -p 80:80 nginx
-d 后台运行
-p 内外端口映射
4 查看正在运行的容器
docker ps
5 修改容器
docker exec -it xxxx bash
-it 接容器id
6 删除容器
docker rm -f xxx
7 提交容器
docker commit xxx name(自己定一个名字)
8 通过dockerfile构建镜像跑成容器
新建dockerfile文件(写法自行查阅官方文档)
然后在当前目录新建index.html
9 保存文件和重新加载
摘一个网友(湿漉漉的小狐狸)的笔记
安装和常用CLI:
添加阿里云镜像:sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装命令:sudo yum install -y docker-ce docker-ce-cli containerd.io
启动命令:sudo systemctl start docker
添加当前用户到docker用户组:sudo usermod -aG docker $USER (需注销),newgrp docker (立即生效)
Helloworld:docker run hello-world (本地没有镜像的话会自动从远端仓库pull)
pull nginx 镜像:docker pull nginx(等效于nginx:latest)
运行:docker run -【d】(后台运行不阻塞shell) 【-p 80:80】(指定容器端口映射,内部:外部) nginx
查看正在运行:docker ps
删除容器:docker rm -f <container id(不用打全,前缀区分)>
进入bash:docker exec -it <container id(不用打全,前缀区分)> bash
commit镜像:docker commit <container id(不用打全,前缀区分)> <name>
查看镜像列表:docker images (刚才commit的镜像)
使用运行刚才commit的镜像:docker run -d <name>
使用Dockerfile构建镜像:docker build -t <name> <存放Dockerfile的文件夹>
删除镜像:docker rmi <name>
保存为tar:docker save <name> > <tar name>
从tar加载:docker load < <tar name>
一些启动参数:
后台运行容器:-d
容器内外端口映射:-p 内部端口号:外部端口号
目录映射:-v 'dir name' : <dir>
指定映像版本:<name>:<ver>
多容器项目的组织
docker run -d -p 80:80 --name mynginx nginx
docker ps
docker exec -it mynginx bash
cat /etc/hosts
172.17.0.2是容器的ip
然后我们退出(exit)然后又启动一个新的容器
docker run -dit alpine
docker exec -it xxxx(容器id)
apk add curl
curl 172.17.0.2
–link 参数 把另一个容器映射到本容器里面(通过修改/etc/hosts文件)
三个容器的组织
注意:创建顺序需要先mysql,然后启动php的时候link参数映射到mysql,同理类推~
这样对运维来说太麻烦了,有什么好方法吗?docker-compose
docker-compose 用法
(本小节实验涉及的文件参考:https://github.com/bobo132/docker-compose-demo-1)
新建俩文件夹
+
|____ conf
|____ html
然后在conf/
下面建立nginx.conf
(略)
然后写docker-compose.yml
(不能指定官方的php,因为缺少扩展,搜索php-fpm然后选一个~
然后退出vim~
在该目录下运行docker-compose up -d
(-d 后台启动)
学习资源
课程
- 【docker入门】10分钟,快速学会docker
- 【docker入门2】实战~如何组织一个多容器项目docker-compose
- 【Docker】Dockerfile用法全解析
- 【kubernetes入门】快速了解和上手容器编排工具k8s
实验
4. https://labs.play-with-docker.com/
不需要本地安装,在web端做实验~