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