0%

Docker常用命令

Docker 常用命令总结,坚持就是胜利!

docker 常见命令总结

1
2
3
4
5
6
7
8
9
10
11
12
# 查看已经安装的镜像
docker images
# 查看正在运行的容器
docker ps
# 查看已经退出的容器
docker ps -a
# 启动容器
docker start <container ID>
# 停止容器
docker stop <container ID>
# 开启一个容器内部的交互式终端 /bin/bash
docker exec -it <container ID> /bin/bash

Docker安装MySQL

1
2
3
4
5
6
7
8
9
10
11
12
docker pull mysql
# 将容器的 3306 端口映射到主机的 3306 端口, 容器conf目录和logs目录、data目录都挂载在本地,并设置root密码 root
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql
# 这里会输出容器ID
# 进入容器
docker exec -it <container ID> /bin/bash
# 登录Mysql
mysql -uroot -p
# 授权所有权限给root用户,并允许远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
# 刷新权限
flush privileges;

Docker安装Tomcat

1
2
3
4
5
6
7
8
9
10
11
12
# 安装Tomcat
docker pull tomcat
# 运行容器
# 命令说明
# -p 8080:8080:将容器的 8080 端口映射到主机的 8080 端口。
# -v $PWD/test:/usr/local/tomcat/webapps/test:将主机中当前目录下的 test 挂载到容器的 /test
docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat

docker exec -it <container ID> /bin/bash

ls -l
mv webapps.dist webapps

Docker安装Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装nginx
docker pull nginx
# 查看镜像
docker ps
# --name 容器名称 -p 8080:80 端口进行映射,将本地8080端口映射到容器内部的80端口 - 简易启动方式
docker run --name nginx-test -p 8080:80 -d nginx
# -v 使用本地配置覆盖docker镜像配置 --net host 参数加上后不会使用容器自己虚拟的网卡,而会使用宿主机自己的IP和端口
docker run \
--name my_nginx \
-d -p 30002:80 --net host\
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-v /home/nginx/conf.d:/etc/nginx/conf.d \
nginx

常见问题

在安装docker的虚拟机重启后,再次进入会发现docker 容器的状态为退出 docker ps -a,这个时候有两个选择

  1. 删除容器 docker rm <container ID>, 如果有容器中的数据很重要可以保存为images docker commit <container ID>
  2. 重启docker容器 docker start <container ID>