Docker常用命令&操作

r囧r小猫 2022-03-01 06:42 366阅读 0赞

Docker常用命令&操作

1)、镜像操作









































操作 命令 说明
检索 docker search 关键字 eg:docker search redis 我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。
拉取 docker pull 镜像名:tag :tag是可选的,tag表示标签,多为软件的版本,默认是latest
列表 docker images 查看所有本地镜像
删除 docker rmi image-id 删除指定的本地镜像
进入容器 docker exec -it 容器名 /bin/bash 进入容器
数据拷贝 docker cp 主机目录=容器目录 用于容器与主机之间的数据拷贝。

https://hub.docker.com/

2)、容器操作

软件镜像(QQ安装程序)——运行镜像——产生一个容器(正在运行的软件,运行的QQ);

步骤:

  1. 1、搜索镜像
  2. [root@localhost ~]# docker search tomcat
  3. 2、拉取镜像
  4. [root@localhost ~]# docker pull tomcat
  5. 3、根据镜像启动容器
  6. docker run --name mytomcat -d tomcat:latest
  7. 4docker ps
  8. 查看运行中的容器
  9. 5 停止运行中的容器
  10. docker stop 容器的id
  11. 6、查看所有的容器
  12. docker ps -a
  13. 7、启动容器
  14. docker start 容器id
  15. 8、删除一个容器
  16. docker rm 容器id
  17. 9、启动一个做了端口映射的tomcat
  18. [root@localhost ~]# docker run -d -p 8888:8080 tomcat
  19. -d:后台运行
  20. -p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口
  21. 10、关闭linux的防火墙
  22. service firewalld status ;查看防火墙状态
  23. service firewalld stop:关闭防火墙
  24. 11、查看容器的日志
  25. docker logs container-name/container-id
  26. 12、数据拷贝
  27. 主机->容器:docker cp 主机目录 容器名:容器目录
  28. 容器->主机:docker cp 容器名:容器目录 主机目录
  29. 更多命令参看
  30. https://docs.docker.com/engine/reference/commandline/docker/
  31. 可以参考每一个镜像的文档

3)、安装MySQL示例

  1. docker pull mysql

错误的启动

  1. [root@localhost ~]# docker run --name mysql01 -d mysql
  2. 42f09819908bb72dd99ae19e792e0a5d03c48638421fa64cce5f8ba0f40f5846
  3. mysql退出了
  4. [root@localhost ~]# docker ps -a
  5. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  6. 42f09819908b mysql "docker-entrypoint.sh" 34 seconds ago Exited (1) 33 seconds ago mysql01
  7. 538bde63e500 tomcat "catalina.sh run" About an hour ago Exited (143) About an hour ago compassionate_
  8. goldstine
  9. c4f1ac60b3fc tomcat "catalina.sh run" About an hour ago Exited (143) About an hour ago lonely_fermi
  10. 81ec743a5271 tomcat "catalina.sh run" About an hour ago Exited (143) About an hour ago sick_ramanujan
  11. //错误日志
  12. [root@localhost ~]# docker logs 42f09819908b
  13. error: database is uninitialized and password option is not specified
  14. You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD;这个三个参数必须指定一个

正确的启动

  1. [root@localhost ~]# docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
  2. b874c56bec49fb43024b3805ab51e9097da779f2f572c22c695305dedd684c5f
  3. [root@localhost ~]# docker ps
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. b874c56bec49 mysql "docker-entrypoint.sh" 4 seconds ago Up 3 seconds 3306/tcp mysql01

做了端口映射

  1. [root@localhost ~]# docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
  2. ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434
  3. [root@localhost ~]# docker ps
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. ad10e4bc5c6a mysql "docker-entrypoint.sh" 4 seconds ago Up 2 seconds 0.0.0.0:3306->3306/tcp mysql02

几个其他的高级操作

  1. docker run --name mysql03 -v /conf/mysql:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
  2. 把主机的/conf/mysql文件夹挂载到 mysqldocker容器的/etc/mysql/conf.d文件夹里面
  3. mysql的配置文件就只需要把mysql配置文件放在自定义的文件夹下(/conf/mysql
  4. docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  5. 指定mysql的一些配置参数
  6. #redis安装
  7. docker run -d -p 6379:6379 --name redis redis redis-server --appendonly yes

发表评论

表情:
评论列表 (有 0 条评论,366人围观)

还没有评论,来说两句吧...

相关阅读