docker创建容器(docker创建容器并启动容器)

本篇文章给大家谈谈docker创建容器,以及docker创建容器并启动容器对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

docker实践之测试环境容器创建

docker pull centos

举让庆例:

|-暴露端口-|-容器内部端仔埋口-|

|-1001-|9180-|

docker run -d -p 暴露端口:容器内端口 --privileged=true --name 容器名称 镜像名称

注:若容器内部不需要service命令启动服务,可以不加--privileged=true参数

查看容器运行情况:docker ps -a

查看容器ip:docker inspect 容器ID |grep IPA

【ssh】

默认密码:123456

ssh root@容器ip

或ssh root@10.100.1.125 -p 6000

【nsenter】

PID=$(docker inspect --format "{{ .State.Pid }}" [容器id])

nsenter --target $PID --mount --uts --ipc --net --pid

scp -r 宿主机文件夹路径 root@172.17.0.31:容器文件夹路径

scp 宿主机文件路径 root@172.17.0.31:容器文件夹路径

举例:scp -r /home/soft/ root@172.17.0.31:/home/

scp /home/soft/11.txt root@172.17.0.31:/home/

scp -P 6000 -r 文件夹路径 root@宿主机服务器:容器文件夹路径

scp -P 6000 文件路径 root@宿主机服务器:容器文件夹路径

举例:scp -P 6000 -r /home/soft/ root@10.100.1.125:/home/

scp -P 6000 /home/soft/11.txt root@10.100.1.125:/home/

sed -i "s/旧/新/g" `grep '旧' -rl /home/hornetq/`

举例:

sed -i "s/172.17.0.34/172.17.0.7/g" `grep '172.17.0.34' -rl /home/hornetq/`

sed -i "s/10.100.1.150/172.17.0.15/g" `grep '10.100.1.150' -rl /home/坦戚握hornetq/`

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 6305 -j DNAT --to-destination 172.17.0.31:5445

iptables-save

iptables -t nat -nvL | grep 172.17.0.31

[img]

Jenkins docker插件自动创建容器执行完成销毁容器

1、jenkins 安装没州洞docker 插件

jenkins 安装Docker plugin

2、配置jenkins使用Docker 管理口

1)配置Dokcer配置文件(Docker windows不支持)

编辑docker文件:枯枯/usr/lib/systemd/system/docker.service

修改ExecStart行为下面内容

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \

重新加载docker配置

systemctl daemon-reload // 1,加载docker守护线程

systemctl restart docker // 2,重启docker

2)jenkins配置docker 管理

3、配置docker镜像模板使用

点击对应的任务执行,自动生成对应的node节点,执行完成迹乱后自动删除节点。

docker 使用

运行容器

sudo docker run -it -v /home/lcj/test_docker:/home/lcj/test_docker tensorflow/tensorflow:1.13.1-gpu-py3

参数:

-d 后台运行并返回容器ID,如 -itd

-e 设置环境变量,如 -e NVIDIA_VISIBLE_DEVICE=0 使用编号为 0 的GPU

-i 打开 STDIN,用于控制台交互,通常跟 -t 一起使用

--net 容器网络设置,如 --net my_network,或者 --net=contianer:NAME_or_ID,使用其他容器的网络,共享 IP 和 PORT 等资源

--restart 指定容器停止后的启动的策略,如 --restart=always

--runtime=nvidia 使用 nvidia 模式运行,跟 -e 一起使用,可以在容器里使用 GPU

-t 为容器重新分配一个伪输入终端,通常与 -i 一起使用

-v 给容器挂载存储卷,挂载到容器的某个目录,如 -v /home/lcj/test_docker:/home/lcj/test_docker

-w 指定容器的工作目录

停止容器

docker stop 容器ID

或者 docker stop `docker ps -a -q` 停止所有容器

重启容器

docker restart 容器ID

进入一个运行中的容器

docker attach 容器ID

保存容器

docker save myimage | bzip2 -9 -c /home/lcj/save.tar.bz2

加载容器

bzip2 -d -c /home/lcj/save.tar.bz2 | docker load

杀掉运行中的容器

docker kill -s KILL 容器ID

-s:向容器中发送一个信号

docker rm 命令

参数:

-f :通过 SIGKILL 强制删除一个容器,如 docker rm -f a

-l:移除容器间的网络连接,而非容器本身,如 docker rm -l b,其中 b 为连接名,而非容器名

-v:删除与容器关联的卷

docker create :创建一个容器但不运行它,语法同 docker run

docker ps

-a:显示所有的容器,包括未运行的

-f:根据条件过滤显示的内容

-l:显示最近创建的容器

-n:列出最近创建的 n 个容器

-q:静默模式,只显示容器 ID

列出所有创建的昌培容器 ID

docker ps -a -q

停止所有容器 ID

docker stop  `docker ps -a -q`

获取容器/镜像的元数据

docker inspect 容器/镜像名

docker top :查看容器中的进程信息

docker top a(a 是容器)

docker attach :链接到正在运行的容器(该容器必须正在运行)

docker attach a (a 是容器)

docker events :从服务器获取实时事件

-f:根据条件过滤事件

--since:从指定的时间戳后显示所有的事件

--until:流水时间显示到指定的时间为止

显示docker 2016年7月1日后的所有事件

docker events -since="1467302400"

显示docker 镜余迅配像为mysql:5.6 2016年7月1日后的相关事件

docker events -f "image"="mysql:5.6" --since="1467302400"

备注:如果指定的时间是到秒级的,需要将时间转成时间戳。如果时间为日期的话,可以直接使用,如--since="2016-07-01"

docker export :将文件系统作为一个 tar 压缩文件导出到 STDOUT

docker port :列出指定的容器端口的映射,或者查找将 PRIVATE_PORT NAT 到面向公众的端口

docker port a(a 为容器名)

docker commit : 从容器创建一个新的镜像

-a:提交竖指的镜像作者

-c:使用 Dockerfile 文件来创建镜像

-m:提交时说明的文字

-p:在 commit 时暂停容器

docker commit -a 'lcj' -m 'has update' 容器 ID 镜像名

docker cp :用于容器与主机之间的数据拷贝

将主机的 test_docker 目录拷贝到容器 /home/lcj 目录下

docker cp /home/lcj/test_docker 容器 ID:/home/lcj/

将容器 /home/lcj 目录拷贝到主机的 test_docker 目录下

docker cp 容器 ID:/home/lcj/ /home/lcj/test_docker

docker login/logout :登录或退出一个 Docker 镜像仓库,如果未指定镜像仓库地址,则默认为 官方 Docker Hub

docker login -u 用户名 -p 密码

docker logout

docker pull :从镜像仓库中拉取或者更新指定镜像

docker pull java

docker push :将本地的镜像上传到镜像仓库,需先登录到镜像仓库

docker push myapache:v1

docker search :从 Docker Hub 查找镜像

--automated,只列出 automated build(自动生成) 类型的镜像

--no-trunc,显示完整的镜像描述

-s:列出收藏数不少于指定值的镜像

从Docker Hub查找所有镜像名包含java,并且收藏数大于10的镜像

docker search -s 10 java

docker images :列出本地所有的镜像

-a:列出本地所有的镜像(含中间映像层,默认情况下,过滤中间映像层)

-q:只显示镜像 ID

docker images 或 docker images ubuntu,列出本地所有镜像或本地仓库名为 ubuntu 的所有的镜像

docker  rmi :删除一个或多个镜像

-f:强制移除

--no_prune:不移除该镜像的过程镜像,默认移除

强制删除本地镜像w3cschool/ubuntu:v4

docker rmi -f w3cschool/ubuntu:v4

docker tag :标记本地镜像,将其归入到某一个仓库

将镜像ubuntu:15.10标记为 w3cschool/ubuntu:v3 镜像

docker tag ubuntu:15.10 w3cschool/ubuntu:v3

docker build:使用 Dockerfile 文件创建镜像

使用当前目录的Dockerfile创建镜像

docker build -t w3cscholl/ubuntu:v3 . (不要漏掉最后的 . 符号)

使用URL  github.com/creack/docker-firefox  的 Dockerfile 创建镜像

docker build github.com/creack/docker-firefox

docker history :查看指定镜像的创建历史

docker save :将指定镜像保存成 tar 压缩文件

-o:输出到文件

docker save -o my_ubuntu_v3.tar w3cschool/ubuntu:v3

docker import:从压缩文件中创建镜像

-c:应用 docker 指令创建镜像

-m:提交时的说明文字

从镜像归档文件my_ubuntu_v3.tar创建镜像,命名为w3cschool/ubuntu:v4

docker import my_buntu_v3.tar w3cschool/ubuntu:v4

Docker 创建容器时指定容器ip

在上一篇 《 docker 网络(hostnonebridge) 》中,我们介绍了docker自带网络的三种模式。

其中提到过bridge(docker0)网络由于是docker安装时就创建的,无法在创建容器的时候指定容器ip。

那么在实际部署中,我们需要指定容器ip,不允许其自行分配ip,防止容器ip混乱。

有什么办法可以在创建容器时指定容器ip呢?很简单,自己创建链坦一个新的bridge网络bridge1,在创建bridge1的时候同时创建子网,那么在创建容器的时候指定网络为bridge1并指定ip即可。

光说不练假把式,我们一起实战吧!!!

好亏亏的,现在自棚空桐定义的网络已经创建好了,之后在创建容器的时候,我们就可以指定IP了。

此时指定的容器ip为172.16.12.12。

如果没有指定容器ip,将会自动分一个172.16.12.0/16网段内的ip。

关于docker创建容器和docker创建容器并启动容器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表