docker基本命令
2.命令
-
安装docker
yum install docker
-
查看是否安装成功
docker info
# 或者
docker version
-
换源
# 增加
{
“registry-mirrors”: [“https://3zfwxe4j.mirror.aliyuncs.com”]
}
systemctl restart docker
-
登录dockerHub
docker login docker.io
- 查找镜像
docker search xxxxx(镜像名)
- 下载镜像
docker pull xxxxx(镜像名)
-
上传镜像
docker push xxxx(镜像名)
-
改镜像名
docker tag xxxxx(镜像id) docker.io/zhengquantao/xxxx(新镜像名)
-
查看镜像
docker images
-
查看所有容器名
# 查看正在运行容器
docker ps
# 查看所有容器,包含停止的容器
docker ps -a
-
运行容器
# 运行进入容器
docker run -it zhengquantao/alipine:21.2.23 bash
# 运行容器,停止自动删除容器 --rm
docker run --rm --name mynginx -p:8001:80 -d zhengquantao/nginx:v1
# 运行容器,挂载文件 -v
docker run --rm --name mynginx_baidu -d -p 8003:80 -v D:/dockerImage:/usr/share/nginx/html zhengquantao/nginx:v1
# 运行容器,传入环境名 -e
docker run --rm --name mynginx_baidu -d -p 8003:80 -e IP="http://www.baidu.com" -v D:/dockerImage:/usr/share/nginx/html zhengquantao/nginx:v1
# 运行容器,关联多个容器 --link
docker run --name waterland -p 8003:8003 -p 8004:8004 -p 8188:8188 --link mysql:my-mysql -v /root/waterland-cms-bn:/app waterland:v1
-
进入正在运行的容器
docker exec -it xxxx /bin/bash
- 停止、开始、重启容器
docker stop/start/restart xxxx(容器ip/名字)
- 提交容器成镜像
docker commit -p xxxx xxx(新名字)
-
删除容器
docker rm -f xxx
- 删除镜像
docker rmi xxxxxx
- 查看日志
docker logs -f xxxx
- 重定向输入日志
docker run xxxx(名字) 2>&1 >> /dev/null
- 复制文件到指定容器
docker cp waterland.sql 8f82abcf4b84:/waterland.sql
- MySQL导出数据
docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql
- MySQL导入数据
docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/on/your/host/all-databases.sql
- 导出镜像
docker save -o mysql-dev.tar xxxxxx
- 导入镜像
docker load < mysql-dev.tar
- 构建
docker build -t zhengquantao/xxxxx_api .
- Dockerfile
FROM zhengquantao/python-nginx:3.8 # 创建工作路径 RUN mkdir /app COPY . /app # 指定容器启动时执行的命令都在app目录下执行 WORKDIR /app # 替换nginx的配置 COPY nginx.conf /etc/nginx/nginx.conf # 添加证书文件 # COPY cert /etc/nginx/cert # 升级pip RUN pip3 install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple # pip读取requirements.txt内容安装所需的库 RUN pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple # PORT #EXPOSE 8000 #EXPOSE 8001 #EXPOSE 8135 #EXPOSE 8134 # 启动nginx和uwsgi,这里一定要加上-g,主要目的就是设置pid=1。因为docker 容器默认会把容器内部第一个进程,也就是pid=1的程序作为docker容器是否正在运行的依据,如果pid=1的程序挂了,那容器就挂了。 #ENTRYPOINT ["nginx"] CMD bash /app/env.sh ENTRYPOINT nginx && uwsgi -i uwsgi.ini
- docker-compose.yml
version: '3' services: mysql: build: ./mysql ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD=123456 restart: always flask: build: ./flask ports: - "5000:5000" volumes: - ":" links: - mysql:mysql restart: always
- env.sh
#!/usr/bin/env sh find '/app/admin/dist/js' -name '*.js' -exec sed -i -e 's/baseURL=".*"/baseURL="$IP"/g' {} \; find '/app/client/dist/js' -name '*.js' -exec sed -i -e 's/baseURL=".*"/baseURL="$IP"/g' {} \;