Docker 系统性入门+进阶实践

参考资料https://www.docker.tips

1. 查看linux系统centos版本

cat /etc/centos-release

2. 使用官方安装脚本自动安装 (仅适用于公网环境)

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

 等待安装完成进行验证 

docker version


 3. 启动docker

systemctl start docker

常用命令

查看容器日志

docker logs [-f] containerId

 容器的交互模式

docker exec -it containerId sh

使用pstree查看容器的进程

yum install psmisc
pstree -halps processId


Dockerfile

编写一个py文件 hello.py

print("hello world")

编写Dockerfile文件

FROM ubuntu:21.04
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y python3.9 python3-pip python3.9-dev
ADD hello.py /
CMD ["python3", "/hello.py"]

构建镜像

docker image build -t hello .

-t 镜像名称
. build context当前目录

运行镜像,会输出hello world

docker run -it hello


修改镜像名称

docker tag hello jiangli/hello:1.0

登录docker hub

docker login

 向docker hub推送镜像

docker push jiangli/hello:1.0

ADD 和 COPY 的区别:都可以复制,区别ADD会自动解压缩

WORKDIR 切换工作目录

以交互的方式运行容器并且在退出后删除容器
docker run --rm -it hello

Dockerfile示例

FROM python:3.9.5-slim
COPY app.py /src/app.py
RUN pip install flask
WORKDIR /src
ENV FLASK=app.py
EXPOSE 5000
CMD ["flask", "run", "-h", "0.0.0.0"]

容器网络

创建自定义网络

docker network create -d bridge networkName

容器可以同时连接两个网络
容器box3再连接bridge网络

docker network ls
docker network conncet networkName containerId
docker container inspect containerId

从bridge网络移除box3

docker network disconnect networkName containerId

端口转发

iptables -t nat -nvxL

 容器外的80端口映射到容器内的80端口


docker-compose

Linux用户需要自行安装

最新版本号可以在这里查询 Releases · docker/compose · GitHub

sudo curl -L https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
由于网络问题,常常安装不上,换成国内的 
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

 compose 文件的结构和版本
docker compose文件的语法说明 Compose specification | Docker Documentation

基本语法结构

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值