示例镜像与版本 mysql:5.6.40
我这边选择的版本是 docker pull mysql:5.6.40
在终端中执行以下命令以拉取镜像:
docker pull mysql:5.6.40
docker images
docker run --help
docker run
–name 设置docker容器的名称
-d 在后台运行docker
-it 使用交互的方式运行docker
-p 执行容器的端口,如 -p 80:80
-P 随机指定端口
命令解释:使用镜像 mysql:5.6.40
创建一个容器,名称为 some-mysql
docker run --name some-mysql -d mysql:5.6.40
命令解释:使用镜像 mysql:5.6.40
创建一个容器,名称为 some-mysql
,将容器 3306
端口与宿主机1967
相互绑定,在访问宿主机1967
端口的时候,会映射到 对应3306
端口容器
docker run --name some-mysql -p 1967:3306 -d mysql:5.6.40
命令解释:
使用镜像 mysql:5.6.40
创建一个容器
名称为 some-mysql
将容器 3306
端口与宿主机1967
相互绑定,在访问宿主机1967
端口的时候,会映射到 对应3306
端口容器
通过-e
传递环境变量参数,MYSQL_ROOT_PASSWORD=123456
运行容器后设置 MYSQL root密码为 123456
docker run --name some-mysql -p 1967:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6.40
命令解释:
使用镜像 mysql:5.6.40
创建一个容器
名称为 some-mysql
将容器 3306
端口与宿主机1967
相互绑定,在访问宿主机1967
端口的时候,会映射到 对应3306
端口容器
通过-e
传递环境变量参数,MYSQL_ROOT_PASSWORD=123456
运行容器后设置 MYSQL root密码为 123456
将宿主机/www/mysql/data
目录挂载到 容器 /var/lib/mysql
目录,/var/lib/mysql
目录 是 MySQL容器数据目录(对应windows版本MySQL根目录的data)这样就可以在宿主机上操作mysql数据
将宿主机/www/mysql/data
目录挂载到 容器 /var/lib/mysql
目录,/var/lib/mysql
目录 是 MySQL容器数据目录(对应windows版本MySQL根目录的data)这样就可以在宿主机上操作mysql数据
MySQL Docker容器目录说明:
/var/lib/mysql
mysql数据目录
/etc/mysql
mysql配置文件目录
docker run --name some-mysql -p 1967:3306 -v /www/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6.40
docker ps
docker ps -a
示例 查看最近创建的两个容器
docker ps -n 2
docker ps -aq
操作指定容器,容器(CONTAINER ID
)ID使用 docker ps
查看
命令解释: 进入容器(CONTAINER ID
)ID为ae2c62b56e2f
的终端目录
docker exec -it ae2c62b56e2f
或者使用 容器别名
docker exec -it some-mysql
退出容器终端:
exit
docker stop ae2c62b56e2f
当使用docker stop 无法停止时,可以使用docker kill 直接杀掉
docker kill ae2c62b56e2f
docker start ae2c62b56e2f
docker restart ae2c62b56e2f
删除容器需要先停止容器
docker rm ae2c62b56e2f
确保所有容器都是停止状态
docker rm -f $(docker ps -aq)
或者
docker ps -aq|xargs docker rm -f
docker logs -tf --tail num 容器id 可以查看启动容器的最新num
行的日志
示例查看指定容器最新10行日志内容
docker logs -tf --tail 10 ae2c62b56e2f
如下查看10行日志,并且会一直更新。类似linux中的tail -f 的效果
docker top 容器id 查看容器中的进程信息
docker top ae2c62b56e2f
docker inspect 容器id 查看容器内部信息
docker inspect ae2c62b56e2f
docker cp <container_id>:/path/to/file /path/on/host
<container_id>
是要拷贝文件的容器ID,/path/to/file
是容器中要拷贝的文件路径,/path/on/host
是宿主机上要保存文件的路径。
例如,要将容器ID为ae2c62b56e2f
的容器中的/app/data.txt
文件拷贝到宿主机上的/tmp
目录下,可以运行以下命令:
docker cp ae2c62b56e2f:/app/data.txt /tmp
完成拷贝后,你可以在宿主机上的/tmp
路径下找到文件。
docker cp /path/on/host <container_id>:/path/inside/container
其中,/path/on/host
是要拷贝到容器中的文件路径,<container_id>
是要拷贝到的容器ID,/path/inside/container
是容器内要保存文件的路径。
例如,要将宿主机上的/tmp/data.txt
文件拷贝到容器ID为ae2c62b56e2f
的容器中的/app
目录下,可以运行以下命令:
docker cp /tmp/data.txt ae2c62b56e2f:/app
完成拷贝后,你可以在容器内的/app
路径下找到文件。
Docker镜像常用操作命令,整合如下:
docker pull
:从Docker Hub或其他注册服务器上拉取镜像。docker push
:将镜像推送到Docker Hub或其他注册服务器上。docker image
:列出、删除和管理本地镜像。docker tag
:为镜像添加标签。docker rmi
:删除本地镜像。docker load
:从tar文件中加载镜像。docker commit
:将运行中的容器提交为新镜像。docker build
:使用Dockerfile构建镜像。docker exec
:在运行的容器中执行命令。docker logs
:查看容器的日志。docker pause
/ docker unpause
:暂停和恢复容器的运行。docker rename
:重命名容器。docker rm
:删除容器。docker stats
:查看容器的资源使用情况。docker swarm
:管理Docker集群。docker service
:管理Docker服务。docker stack
:管理Docker应用栈。docker system
:查看系统级别操作的信息。docker version
:查看Docker版本信息。