Docker
Docker
一些常用命令:
-
使用
docker cp命令将文件或目录从容器复制到主机上。docker cp <container_id_or_name>:<container_path> <host_path>示例:
docker cp my_container:/app/data.txt /home/user/data.txt该命令将容器
my_container中的/app/data.txt文件复制到主机的/home/user/data.txt。 -
同样使用
docker cp命令,将文件或目录从主机复制到容器内。docker cp <host_path> <container_id_or_name>:<container_path>示例:
docker cp /home/user/data.txt my_container:/app/data.txt该命令将主机上的
/home/user/data.txt文件复制到容器my_container的/app/data.txt路径下。 -
通过 docker exec 命令复制文件:
如果你想在容器内进行文件操作,并不直接通过 docker cp,可以使用 docker exec 来访问容器内的 shell。以下是将本地文件通过管道传输到容器的方法(适用于一些特定需求):
示例:
cat /home/user/data.txt | docker exec -i my_container tee /app/data.txt
这个命令将主机 /home/user/data.txt 文件的内容通过管道传送到容器 my_container 中 /app/data.txt 文件。
1. 镜像相关命令
-
查看本地镜像:
docker images或者
docker image ls -
拉取镜像:
docker pull <image_name>:<tag>示例:
docker pull ubuntu:latest -
删除本地镜像:
docker rmi <image_id_or_name>示例:
docker rmi ubuntu:latest -
查看镜像详细信息:
docker inspect <image_id_or_name> -
构建镜像(根据
Dockerfile构建):docker build -t <image_name>:<tag> <context>示例:
docker build -t my_image:1.0 .
2. 容器相关命令
-
查看运行中的容器:
docker ps -
查看所有容器(包括停止的容器):
docker ps -a -
启动一个容器:
docker run <options> <image_name>:<tag>示例:
docker run -d -p 8080:80 --name my_container ubuntu:latest -
启动一个交互式容器:
docker run -it <image_name> /bin/bash示例:
docker run -it ubuntu:latest /bin/bash -
停止容器:
docker stop <container_id_or_name> -
启动容器:
docker start <container_id_or_name> -
重新启动容器:
docker restart <container_id_or_name> -
删除停止的容器:
docker rm <container_id_or_name> -
查看容器的详细信息:
docker inspect <container_id_or_name> -
查看容器的日志:
docker logs <container_id_or_name> -
进入容器内部(交互式):
docker exec -it <container_id_or_name> /bin/bash -
查看容器资源使用情况:
docker stats
3. 网络相关命令
-
查看所有网络:
docker network ls -
查看网络详细信息:
docker network inspect <network_name_or_id> -
创建网络:
docker network create <network_name> -
连接容器到网络:
docker network connect <network_name> <container_id_or_name> -
从网络断开容器:
docker network disconnect <network_name> <container_id_or_name>
4. 卷(Volume)相关命令
-
查看所有卷:
docker volume ls -
查看卷详细信息:
docker volume inspect <volume_name> -
创建卷:
docker volume create <volume_name> -
删除卷:
docker volume rm <volume_name> -
将卷挂载到容器:
docker run -v <volume_name_or_host_path>:<container_path> <image_name>示例:
docker run -v my_volume:/data ubuntu
5. Docker Compose 命令
-
启动 Compose 服务:
docker-compose up -
后台启动 Compose 服务:
docker-compose up -d -
停止 Compose 服务:
docker-compose down -
查看 Compose 服务状态:
docker-compose ps -
重建 Compose 服务:
docker-compose up --build -
查看 Compose 服务日志:
docker-compose logs
6. Docker 镜像与容器的清理
-
清理未使用的镜像、容器和网络:
docker system prune -
仅清理停止的容器:
docker container prune -
仅清理未使用的镜像:
docker image prune -
清理未使用的卷:
docker volume prune -
清理未使用的网络:
docker network prune
7. 其他常用命令
-
查看 Docker 版本:
docker --version -
查看 Docker 守护进程日志:
journalctl -u docker.service -
显示 Docker 配置信息:
docker info
8. Docker 容器调试
-
查看容器的进程列表:
docker top <container_id_or_name> -
查看容器的端口映射:
docker port <container_id_or_name>
威联通docker 使用方法
ssh代理
export http_proxy="http://192.168.50.22:7890"
export https_proxy="http://192.168.50.22:7890"
export no_proxy="192.168.50.0/24,localhost,127.0.0.1"
配置好以后可以可
威联通 Docker 配置代理拉取镜像
进入 Contaner Station 目录
cd /share/CACHEDEV1_DATA/.qpkg/container-station
编辑配置文件
vim script/run-docker.sh
在脚本末尾加上代理配置
# 代理
export http_proxy="http://192.168.50.22:7890"
export https_proxy="http://192.168.50.22:7890"
export no_proxy="192.168.50.0/24,localhost,127.0.0.1"
然后重启Contaner
docker项目
embydocker 开新版
1.启动命令:
docker run -d \
--name emby \
--network host \
--restart always \
--device /dev/dri:/dev/dri \
-e UID=0 \
-e GID=0 \
-e GIDLIST=0,0 \
-e http_proxy=http://192.168.1.22:7890 \
-e https_proxy=http://192.168.1.22:7890 \
-e no_proxy=localhost,127.0.0.1 \
--privileged \
-v /share/docker/emby/config:/config \
-v /share/video:/share \
amilys/embyserver:4.8.0.56
ps : docker容器创建可以使用代理,刮削需要
mysql:
#!/bin/sh
docker run \
-p 3307:3306 \
--name mysql8 \
--privileged=true \
--restart unless-stopped \
-v /user/local/server/mysql8.0.33/mysql:/etc/mysql \
-v /user/local/server/mysql8.0.33/logs:/logs \
-v /user/local/server/mysql8.0.33/data:/var/lib/mysql \
-v /user/local/server/mysql8.0.33/etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_ROOT_HOST='%' \
-d mysql:8.0.33
说明:
-p 端口映射 【这里有个特殊的地方是把3306映射给了3307、后续链接数据库的时候用3307链接不用3306】
--privileged=true 挂载文件权限设置
--restart unless-stopped 设置 开机后自动重启容器
-v /docker/mysql8.0.20/mysql:/etc/mysql \ 挂载配置文件【路径是上面创建的挂载路径】
-v /docker/mysql8.0.20/logs:/logs \ 挂载日志【路径是上面创建的挂载路径】
-v /docker/mysql8.0.20/data:/var/lib/mysql \ 挂载数据文件 持久化到主机【路径是上面创建的挂载路径】
-v /etc/localtime:/etc/localtime 容器时间与宿主机同步
-e MYSQL_ROOT_PASSWORD=123456 设置密码
-e MYSQL_ROOT_HOST='%' \设置其他ip访问
-d mysql:8.0.20 后台启动,mysql
执行:sh docker_insert_mysql8.0.20.sh
执行后,进入容器:
docker exec -it mysql8 bash
然后登陆,密码启动的时候已经指定,123456:
mysql -u root -p
设置权限,远程连接:
grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
use mysql
update user set host='%' where user='root';

浙公网安备 33010602011771号