Docker从入门到实践

Docker从入门到实践

Docker 是一个开源的应用容器引擎,基于Go语言,能够将应用程序与基础设施分离,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows 操作系统的机器上,可以实现虚拟化,容器完全使用沙箱机制,彼此之间没有任何接口。

1.docker安装

通过以下脚本在ubuntu系统安装docker:

1
2
3
4
5
6
7
8
9
10
11
# 下载并执行Docker官方安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 添加到用户组sudo groupadd docker
sudo usermod -aG docker $USER
# 配置镜像源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": [ "https://registry.docker-cn.com", "https://mirror.ccs.tencentyun.com", "https://docker.mirrors.ustc.edu.cn" ]}EOF
# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker

可以用下面指令来测试拉取镜像。

1
docker run hello-world

图片

2.基础操作

- 拉取镜像(如nginx镜像)

1
docker pull nginx

- 构建自己的镜像(需要有Dockerfile)

1
docker build -t my-app .

- 运行容器(-d 后台运行,-p 映射端口)

1
docker run -d -p 80:80 nginx

- 查看运行中的容器

1
docker ps

- 进入容器

1
docker exec -it <容器ID> /bin/bash

- 查看容器日志

1
docker logs <容器ID>

- 停止容器

1
docker stop <容器ID>

- 删除容器

1
docker rm <容器ID>

- 删除镜像

1
docker rmi <镜像ID>

- 导出容器

1
docker export ID > ubuntu.tar

- 导入容器

1
cat ubuntu.tar | docker import - my/ubuntu:v1.0

3.高级应用

可以创建Dockerfile来编译自己的镜像。此外,Docker还有数据管理、网络管理和容器编排等功能,可以实现如挂载本地目录,容器互联或外部访问容器等功能。

图片

一个dockerfile最简示例:

1
2
3
4
# 使用nginx作为基础镜像
FROM nginx:latest
# 默认端口暴露80端口
EXPOSE 80

构建镜像:

1
docker build -t mywebsite .

挂载本地文件并运行容器:

1
2
3
docker run -d -p 8080:80 -v /home/user/mywebsite:/usr/share/nginx/html mywebsite
容器启动后,通过映射端口(http://localhost:8080)可以访问挂载的网页内容。
还可以在**[**Docker Hub](https://hub.docker.com)创建账号,下载或上传有用的镜像,便于工作和折腾。

参考链接:

https://www.runoob.com/docker/docker-tutorial.html

https://yeasy.gitbook.io/docker_practice