Docker的安装以及简单使用 ,没错,最近突然想学一下Docker。简单的安装和使用之后发现,简直不要太舒服,真的是太方便了,专门写博客记录一下。这一篇就先写如何安装和启动并且运行hello-world,以及安装MySQL,后面有时间去尝试安装其他东西。

Step 1:快速安装

方式一

1.获取自动安装脚本

curl -fsSL get.docker.com -o get-docker.sh

如果提示 curl :command not found

请执行以下命令

### CentOS
yum install curl
### Debian
apt-get install curl

2. 自动安装

sh get-docker.sh --mirror Aliyun

方式二

Debian

apt-get install docker

CentOS

yum install docker

Step 2:启动Docker

1.启动docker

systemctl start docker

2.设置开机启动Docker

systemctl enable docker

Step 3 :运行 hello word

docker run hello-world

Step 4 :安装MySQL

下载镜像

docker pull mysql:8.0.18

创建容器并运行

这里没有设置对应的文件映射

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.18 --default-authentication-plugin=mysql_native_password

run命令可选参数

  1. -d, --detach=false, 指定容器运行于前台还是后台,默认为false
  2. -i, --interactive=false, 打开STDIN,用于控制台交互
  3. -t, --tty=false, 分配tty设备,该可以支持终端登录,默认为false
  4. -u, --user="", 指定容器的用户
  5. -a, --attach=[], 登录容器(必须是以docker run -d启动的容器)
  6. -w, --workdir="", 指定容器的工作目录
  7. -c, --cpu-shares=0, 设置容器CPU权重,在CPU共享场景使用
  8. -e, --env=[], 指定环境变量,容器中可以使用该环境变量
  9. -m, --memory="", 指定容器的内存上限
  10. -P, --publish-all=false, 指定容器暴露的端口
  11. -p, --publish=[], 指定容器暴露的端口
  12. -h, --hostname="", 指定容器的主机名
  13. -v, --volume=[], 给容器挂载存储卷,挂载到容器的某个目录
  14. --volumes-from=[], 给容器挂载其他容器上的卷,挂载到容器的某个目录
  15. --cap-add=[], 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities
  16. --cap-drop=[], 删除权限,权限清单详见:http://linux.die.net/man/7/capabilities
  17. --cidfile="", 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法
  18. --cpuset="", 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU
  19. --device=[], 添加主机设备给容器,相当于设备直通
  20. --dns=[], 指定容器的dns服务器
  21. --dns-search=[], 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件
  22. --entrypoint="", 覆盖image的入口点
  23. --env-file=[], 指定环境变量文件,文件格式为每行一个环境变量
  24. --expose=[], 指定容器暴露的端口,即修改镜像的暴露端口
  25. --link=[], 指定容器间的关联,使用其他容器的IP、env等信息
  26. --lxc-conf=[], 指定容器的配置文件,只有在指定--exec-driver=lxc时使用
  27. --name="", 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
  28. --net="bridge", 容器网络设置:
    • bridge 使用docker daemon指定的网桥
    • host //容器使用主机的网络
    • container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源
    • none 容器使用自己的网络(类似--net=bridge),但是不进行配置
  29. --privileged=false, 指定容器是否为特权容器,特权容器拥有所有的capabilities
  30. --restart="no", 指定容器停止后的重启策略:
    • no:容器退出时不重启
    • on-failure:容器故障退出(返回值非零)时重启
    • always:容器退出时总是重启
  31. --rm=false, 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
  32. --sig-proxy=true, 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理

Navicat连接

附:Docker常用的一些命令

  1. docker images 命令, 显示可用的容器
  2. docker rmi <镜像Id> 命令,删除指定镜像
  3. docker pull hello-world 命令 , 下载 hello-world image
  4. docker rmi <镜像Id> 命令,删除指定镜像
  5. docker ps 命令, 列出当前正在运行的容器, 结果的第一列是container_Id, 第2列是容器名称.
  6. docker ps -a 命令, 列出当前正在运行的和之前运行完的容器
  7. docker stop container_id/container-name 命令, 停止指定的容器, 该容器Id或名称可以从docker ps中获取.
  8. docker restart container_id/container-name 命令, 重新启动指定的容器, 该容器Id或名称可以从docker ps中获取.
  9. docker start container_id/container-name 命令, 启动指定的容器, 该容器Id或名称可以从docker ps中获取.
  10. docker rm container_id/container-name, 删除指定的容器
  11. docker rm $(docker ps -a -q) 命令, 删除所有运行结束了容器, 正在运行的容器不会被删除
  12. docker top container_id/container-name, 查看容器内的进程
  13. docker logs [-f] [-t] [--tail string] 容器名, 查看容器的日志输出, -f是打开跟踪, -t是加上时间戳, --tail 100 表示仅显示最后的100行日志
  14. docker search nginx, 在hub站点中搜索 nginx 镜像
  15. docker image inspect image_id 命令, 显示指定镜像的详细信息.
  16. docker container inspect container_id/container-name 命令, 显示指定容器的详细信息,包括容器的Id
  17. docker images -f dangling=true 命令, 列出没有被容器化的镜像
  18. docker rmi $(docker images -qf dangling=true) 命令, 删除那些没有被容器化的镜像
  19. docker system df 命令, 可以一次性查看镜像/容器/host volume的磁盘占用情况.
  20. docker ps -s 命令, 输出容器的空间占用

参考

  1. 简书:Docker入门安装使用教程
  2. 博客园:Docker命令详解(run篇)
  3. 博客园:基础镜像环境和Docker常用命令整理

标签云

ajax (1) AOP (1) Bootstrap (1) cdn (2) Chevereto (1) CSS (1) Docker (3) Editormd (1) GC (2) Github (1) Hexo (6) IDEA (1) JavaScript (2) jsDeliver (1) JS樱花特效 (1) JVM (9) Linux (6) Live2D (1) markdown (1) Maven (1) MyBatis (3) MyBatis-plus (1) MySQL (5) Navicat (1) Oracle (1) Pictures (1) QQ (1) Sakura (5) SEO (3) Spring Boot (16) Spring Cloud (10) Spring Cloud Alibaba (6) SpringMVC (1) Thymeleaf (3) Vue (1) Web (12) WebSocket (1) Wechat Social (1) WordPress (9) Yoast SEO (2) 代理 (1) 分页 (1) 图床 (2) 小幸运 (1) 通信原理 (1)