目录
  1. 1. 初识docker
    1. 1.1. 组成
  2. 2. 镜像
    1. 2.1. 查看镜像位置
  3. 3. 容器
    1. 3.1. 创建容器 docker run 参数
  4. 4. 常用docker命令
docker起步

初识docker

docker是一套快速搭建并运行项目的一个技术
并且是跨平台的

组成

  1. docker_client
  2. Docker daemon
  3. containerd OCI
  4. shim OCI
  5. runc OCI
    镜像:可以理解为一个模板,运行的镜像(docker container run)就变成了容器
    docker 中 镜像(构建时) —> 容器(运行时)

镜像

查看镜像位置

/Users/peiqianfeng/Library/Containers/com.docker.docker/Data

docker image ls查看本地镜像

容器

创建容器 docker run 参数

docker container run

  1. -i, –interactive Keep STDIN open even if not attached
    即使未连接STDIN(标准输入)也保持打开状态,分配一个交互终端

  2. -t, –tty Allocate a pseudo-TTY
    表示容器启动后会进入其命令行,与it一起使用。
    分配一个伪tty设备,可以支持终端登录

PS:针对纯操作系统镜像(没有守护进程的)在docker run的时候需要加-it参数,否则启动后会自动退出

  1. -d, –detach Run container in background and print container ID
    让容器在后台运行并打印容器的ID。如果你的容器启动会打印日志,那边加-d选项在终端就看不到了,需要用docker logs -f 容器ID查看

  2. –privileged=true Give extended privileges to this container
    授予此容器扩展特权,也就是开启特权模式;
    这种模式下容器对docker宿主机拥有root访问权限,允许我们以其宿主机具有(几乎)所有能力来运行容器,包括一些内核特性和设备访问,慎用

  3. –name string Assign a name to the container
    给容器取一个名字,用docker ps可以查看

  4. –rm
    退出容器后,容器会被删除,常用于测试

  5. –hostname string Container host name
    设置容器里面的主机名,登陆到容器里面可以看到

  6. –restart string Restart policy to apply when a container exits (default “no”)
    容器退出时的重启策略(4种)

no,默认策略,在容器退出时不重启容器
on-failure,在容器非正常退出时(退出状态非0),才重启容器
on-failure:3,在容器非正常退出时重启容器,最多重启3次
always,在容器退出时总是重启容器
unless-stopped,在容器退出时总是重启容器,如果容器正常stopped,然后机器重启或docker服务重启,容器将不会被restart

更改已运行容器的重启策略

docker update –restart=always test
1
9. –network string Connect a container to a network (default “default”)
–network可以省略为–net
1
参考文章:https://www.cnblogs.com/yfalcon/p/9044246.html
标准Docker支持4种网络模式

bridge 使用docker daemon指定的网桥,默认为docker0;使用–net=bridge指定,为默认设置
host 容器使用主机的网络
container:NAME_or_ID > 使用其他容器的网络,共享IP和PORT等网络资源
none 容器使用自己的网络,使用–net=none指定

docker inspect test查看,使用主机网络,不再给容器单独分配IP地址

  1. –link
    实现通过容器名访问

docker run -d –name test2 –link test1 busybox sleep 3600
1
test2容器可以直接ping通test1容器名,但test1不能ping通test2容器名

之所以能够Ping通,是因为把test1的IP地址与容器名、主机名的映射写入到了test2容器的/etc/hosts文件中

  1. –cpus=1 -m 512M
    设置容器CPU和内存的使用上限

  2. -v, –volume list Bind mount a volume (default [])
    容器与宿主机绑定一个卷

  3. -p 80:80
    端口映射,前面为宿主机的端口, 后面为容器服务进程端口,访问宿主机的80,最终会转发给容器的80端口,实现方式为iptables
    注意:如果采用的是–net=host方式,那么不需要做规则转发,可以直接访问

  4. -e, –env list Set environment variables (default [])
    给容器声明环境变量,在容器内部可以通过export查看

  5. –device list Add a host device to the container (default [])
    增加主机的一个设备到容器,也就是让容器拥有访问这个设备的权限

  6. –shm-size
    指定shm的大小,默认为64M

参考docker run 参数

常用docker命令

  1. 启动
  2. ##查看正在运行的容器
    docker ps
    ##查看正在运行的容器的ID
    docker ps -q
    ##查看正在运行+历史运行过的容器
    docker ps -a
    ##显示运行容器总文件大小
    docker ps -s
    ##显示最近创建容器
    docker ps -l
  3. 查看版本 docker version
  4. 启动 docke start id
  5. 停止 docker stop id
  6. 删除 docker rm id
文章作者: ruqiuvy
文章链接: https://github.com/yiyeruqiuvy/2022/06/14/docker%E8%B5%B7%E6%AD%A5/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 一夜入秋非生之所
打赏
  • 微信
  • 支付寶

评论