Docker 常用命令
- 重启docker服务
systemctl restart docker
- 查看docker全部容器
docker ps -a
- 启动docker容器,626a994a3ccc为容器id
docker start 626a994a3ccc
- 进入容器,e1066fe2db35为容器id
docker exec -it e1066fe2db35 /bin/bash
- 关闭容器,命令中的“mysql”为容器名字,626a994a3ccc 为容器id,建议使用容器id关闭容器
docker stop mysql
docker stop 626a994a3ccc
- 移除docker容器,命令中的“mysql”为docker容器名字
docker rm -f mysql
- 查看docker所有镜像
docker images
- 从主机复制到容器
host_path: 主机文件路径。 如: /mysoft/springBootDemo.war
containerID: docker的容器id。 如:e1066fe2db3
container_path: 容器的路径。 如:/usr/local/tomcat/webapps
sudo docker cp host_path containerID:container_path
例如:
docker cp /mysoft/springBootDemo.war 626a994a3ccc:/usr/local/tomcat/webapps
- 从容器复制到主机
containerID: docker的容器id。 如:e1066fe2db3
container_path: 容器文件路径 如:/usr/local/tomcat/webapps
host_path:主机的路径
sudo docker cp containerID:container_path host_path
- 查看容器ip地址
cat /etc/hosts
- 新建并启动容器, my/python:v1为镜像名和标签
docker run my/python:v1 cal
docker run -it my/python:v1 /bin/bash # 并启动一个bash交互终端
- 新建mysql容器
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
- 新建并启动tomcat容器
docker run -p 8081:8080 docker.io/tomcat
- 新建容器 imagerID 即镜像id
docker run -d -i -t imageID /bin/bash
docker run -d -p 80:80 -p 22:22 imageID /bin/bash # 启动多个端口映射
-
docker启动命令参数详情: https://www.cnblogs.com/yfalcon/p/9044246.html
-
提交制作镜像 (52fd5891c694 容器id centos_ssh 镜像名称)
docker commit 52fd5891c694 centos_ssh
- docker 导出镜像
docker save [options] images [images...]
# 例如:
docker save -o centos_ssh_tomcat.tar centos_ssh_tomcat
# centos_ssh_tomcat.tar为文件名
# centos_ssh_tomcat为镜像名称
- docker 导入镜像
docker load [options]
# 例如:
docker load -i centos_ssh_tomcat.tar
- docker删除镜像
# imageId 镜像id 或者 镜像名称
docker rmi imageId
例如:
docker rmi mysql
docker rmi 922200cd5b61
- 实时查看容器日志
docker logs -f --tail=100 f41c6a557eb6
docker logs -f -t --since=“2017-05-31” --tail=10 f41c6a557eb6
–since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
-f : 查看实时日志
-t : 查看日志产生的日期
-tail=10 : 查看最后的10条日志。
edu_web_1 : 容器名称
- redis容器
# requirepass 参数设置redis密码
docker run -d --name myredis -p 6379:6379 redis --requirepass "mypassword"
docker run -p 6379:6379 -v $PWD/data:/data -d redis:3.2 redis-server --appendonly yes
命令说明:
-p 6379:6379 : 将容器的6379端口映射到主机的6379端口
-v $PWD/data:/data : 将主机中当前目录下的data挂载到容器的/data
redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
docker run -p 6379:6379 -v /home/redis/data:/data -v /home/redis/conf/redis.conf:/etc/redis/redis.conf --privileged=true --name myredis -d docker.io/redis:latest redis-server /etc/redis/redis.conf
# 以上命令需要在home目录下建立redis文件夹,在redis建立conf、data目录
即:
/home/redis/conf
/home/redis/data
需要在/home/redis/conf目录下配置redis.conf文件
bind 127.0.0.1
protected-mode no
appendonly yes
requirepass 123456
protected-mode 是在没有显示定义 bind 地址(即监听全网断),又没有设置密码 requirepass时,只允许本地回环 127.0.0.1 访问。
也就是说当开启了 protected-mode 时,如果你既没有显示的定义了 bind监听的地址,
同时又没有设置 auth 密码。那你只能通过 127.0.0.1 来访问 redis 服务