Docker 学习

[TOC]

安装docker

1
2
3
4
5
sudo apt install curl
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
sudo usermod -aG docker zkzhu
sudo cat /etc/group | grep docker # 看查结果
sudo systemctl restart docker # 需要重启

镜像加速

1
2
3
4
5
6
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker

docker 常用命令

镜像相关

  • docker version
  • docker info
1
2
3
4
5
6
7
8
9
docker commit -a 作者 -m 说明 容器名 新镜像名  # 从容器创建一个新的镜像
docker cp /tmp 容器名:/tmp # 主机拷贝到容器
docker pull 镜像名 # 拉取镜像
docker images -a # 列出本地所有镜像
docker rmi -f 镜像名 # 删除镜像
docker build -t name:tag -f Dockerfile . # 使用Dockerfile创建镜像
docker save -o xxx.tar name:tag # 保存
docker load -i xxx.tar # 加载出来
docker history name:tag # 镜像的创建历史

容器操作相关

1
2
3
4
5
6
7
8
9
10
11
docker ps -a  # 查看所有容器
docker create # 创建容器不运行
docker run # 创建容器并运行
docker run -dit -p 主机端口:容器端口 --name 容器名 镜像名 # 后台,交互,伪输入终端,-P 随机端口映射
docker run -dit -p 主机端口:容器端口 --name 容器名 镜像名 bash # 以bash进入
docker start/stop/restart 容器名 # 启动,停止,重启
docker kill 容器名 # 杀掉容器
docker rm -f 容器名 # 删除容器
docker exec -it 容器名 /bin/bash # 在容器中执行命令,退出容器:exit
docker port 容器名 # 列出容器的端口映射
docker logs 容器名 # 查看日志

镜像仓库

1
2
3
4
5
docker login -u 用户名 -p 密码 xxx仓库地址  # 登录 默认官方地址
docker logout # 登出
docker pull 镜像名 # 拉取镜像
docker tag name:tag 仓库/name:tag # 标记本地镜像,将其归入某一仓库
docker push name:tag # 推送到仓库

Dockerfile

1
2
3
4
5
6
7
FROM 基础镜像
RUN <shell命令> # 换行 \ && ,在docker build 时运行
COPY 源路径 目标路径 # 拷贝
CMD 运行程序 # docker run 时运行 CMD ["/bin/sh", "run.sh"]
ENV key=value # 环境变量
EXPOSE # 声明端口
WORKDIR # 指定工作目录

样例

1
2
3
docker pull euleros  # 拉取euleros镜像
docker run -dit --name zzk_test euleros # 创建容器
docker exec -it zzk_test /bin/bash # 进去容器

学习链接

坚持原创技术分享,您的支持将鼓励我继续创作!
0%