docker常用命令

 

#  安装docker-compose
$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#将可执行权限应用于二进制文件:
$ sudo chmod +x /usr/local/bin/docker-compose
# 创建软链:
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 测试是否安装成功:
$ docker-compose version

sudo apt install docker.io
docker --version
sudo groupadd docker
sudo usermod -aG docker $USER

sudo systemctl start docker
sudo systemctl stop docker
sudo systemctl restart docker
sudo systemctl status docker
sudo systemctl enable docker # 随系统启动

/etc/docker/daemon.json  # 配置仓库镜像,dockerhub.io经常访问不到

docker pull ubuntu:18.04
docker images
docker search ubuntu

# 构建镜像
docker build -t galepai/web-flask:1.0 . -f dockfile

# 不使用缓存构建
docker build -t galepai/web-flask:1.0 . -f dockfile --no-cache

# 运行镜像,主机80端口映射镜像8000端口
docker run -p 80:8000 galepai/web-flask:1.0

# 运行镜像,共享主机网络,共用端口
docker run --network=host galepai/web-flask:1.0

# 后台运行
docker run -d -p 80:8000 galepai/web-flask:1.0
# -v 宿主机目录:容器目录(容器里原先不存在的路径目录)
docker run --name containername -p 80:8099 -v /home/docker:/data/django-project/Watch/logs galepai/watch:1.0

# 进入镜像,
docker run -ti containername<id> bash
docker cp nginx:/etc/nginx/nginx.conf ./                 # 复制镜像或者容器里的文件到当前目录下
docker cp nginx:/etc/nginx/conf.d/default.conf ./conf/    # 复制镜像或者容器里的文件到当前目录conf下

# 查看容器
docker ps        # 显示运行的容器
docker ps -a    # 显示所有未删除的容易(包含运行和退出)
docker ps -aq    # 只显示id

# 容器启动、重新启动 、停止
docker start containername<id>      # 后台
docker attach containername<id>      # 转到前台,ctrl+d, 停止容器
docker start -a containername<id>  # 前台,ctrl+d, 不会停止容器
docker restart containername<id>
docker exec -it containername<id> /bin/bash    # 进入容器的shell,exit退出
docker stop $(docker ps -aq) 
docker logs -f containername<id>     # 实时查看后台日志

# 删除容器
docker rm c87
# 删除所有容器
docker rm $(docker ps -aq) 

# 删除镜像
docker rmi ubuntu:22.04<id>
# 删除<none>镜像,需提前清除冲突的容器
docker image prune

# 保存镜像
docker save -o my_image.tar my_image:tag
# 加载镜像
docker load -i my_image.tar

 

# dockerfile 示例
FROM galepai/web-django:1.0
LABEL MAINTAINER=galepai@163.com
# cv2 need
RUN apt install libgl1-mesa-glx -y
# 时区配置文件,asia/shanghai, tzdata的配置文件
COPY localtime /etc/
RUN apt install tzdata -y
# 复制工程文件
ENV PROJECT_DIR=/data/django-project/Watch
RUN mkdir -p $PROJECT_DIR
COPY Watch $PROJECT_DIR
WORKDIR $PROJECT_DIR
CMD ["python3","manage.py","runserver","0.0.0.0:8000","--noreload"]

 

# 国内可用镜像仓库地址,https://docker.m.daocloud.io,可以直接拉 docker pull m.daocloud.io/docker.io/library/nginx
# /etc/docker/docker.daemon   
{
"registry-mirrors": [ "https://docker.hpcloud.cloud", "https://docker.m.daocloud.io", "https://docker.unsee.tech", "https://docker.1panel.live", "http://mirrors.ustc.edu.cn", "https://docker.chenby.cn", "http://mirror.azure.cn", "https://dockerpull.org", "https://dockerhub.icu", "https://hub.rat.dev" ] }

 

- ```yaml
## docker-compose.yml目录下必须要有这个配置文件
version: "3.8"
services:
web:
image: nginx:latest
container_name: nginx_service
ports:
- 8080:80
volumes:
- e:\VM\docker\nginx\front\nginx.conf:/etc/nginx/nginx.conf
- e:\VM\docker\nginx\front\html:/usr/share/nginx/html
- e:\VM\docker\nginx\front\logs:/var/log/nginx
- e:\VM\docker\nginx\front\conf:/etc/nginx/conf.d
networks:
- host1-network
depends_on:
- webrtc-streamer

webrtc-streamer:
image: mpromonet/webrtc-streamer
container_name: webrtc
ports:
- 8000:8000
command: -o
restart: always

networks:
host1-network:
driver: bridge
ipam:
driver: default
config:
- subnet: 192.168.11.0/24
gateway: 192.168.11.254
```bash
# 对应xml文件的目录里,执行后台执行
docker compose up -d
docker compose stop
docker compose down
docker compose restart

  

posted @ 2024-11-27 00:34  冂冋冏囧  阅读(28)  评论(0)    收藏  举报