⑴ docker内执行reboot命令会重启物理机吗
运行机太
RUNBuild运行先于CMDENTRYPOINTBuild完RUN运行完再运行CMD或者ENTRYPOINT
ENTRYPOINTCMD同点于执行docker run参数传递式CMD指定命令docker run传递命令覆盖例用CMD指定:
...
CMD ["echo"]
运行
docker run CONTAINER_NAME echo foo
CMD指定echo新指定echo覆盖所终相于运行echo foo所终打印结:
foo
ENTRYPOINT容器名面所内容都参数传递给其指定命令(命令覆盖)比:
...
ENTRYPOINT ["echo"]
运行
docker run CONTAINER_NAME echo foo
则CONTAINER_NAME面echo foo都作参数传递给ENTRYPOING指定echo命令所相于执行
echo "echo foo"
终打印结:
echo foo
另外DockerfileENTRYPOINT指定参数比运行docker run指定参数更靠前比:
...
ENTRYPOINT ["echo", "foo"]
执行
docker run CONTAINER_NAME bar
相于执行:
echo foo bar
打印结:
foo bar
Dockerfile能指定ENTRYPOINT指定效
执行docker run命令添加-entrypoint参数指定参数继续传递给ENTRYPOINT例:
...
ENTRYPOINT ["echo","foo"]
执行:
docker run CONTAINER_NAME bar #注意没echo
相于执行echo foo bar终结
foo bar
⑵ Docker启动命令使用kubernetes上传
docker的一些命令
docker run --name mysql5.7.26 -e MYSQL_ROOT_PASSWORD=3edc4rfv -d mysql:5.7.26
连接mysql
docker run -it --rm mysql mysql -hdockerip -uroot -p
查看docker ip
>docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" d3420658daeb
https://stackoverflow.com/questions/17157721/how-to-get-a-docker-containers-ip-address-from-the-host
复制文件到docker 容器
docker cp xxx.sql d3420658daeb:/xxx.sql
根据dockerfile创建image
docker build -t air .
https://stackoverflow.com/questions/36075525/how-do-i-run-a-docker-instance-from-a-dockerfile
运行activemq
docker run --name="activemq" -it --rm -P webcenter/activemq:latest
运行redis
docker run --name redis -d redis
启动zookeeper
docker run --name zookeeper --restart always -d zookeeper
⑶ docker 怎么启动容器的所有
docker如果安装成功,会有一块虚拟网卡,ip地址默认是172.17.42.1
用docker search centos6命令搜索githup中的容器
使用docker pull weepee/centos6下载容器到本地
使用docker images查看本地所有的容器
使用run命令启动容器
/usr/bin/docker run -d -v /root:/root -p 81:80 -p 2222:22 -p 10050:10050 -p 10051:10051 centos6.5_zabbix:v1.3
一定要记住centos6.5_zabbix:v1.3就是第四步查询到的名称和版本号
81:80 前面的宿主机的端口,后面是docker中容器所开的端口,两个端口之间是映射关系
docker ps 查看运行状态的容器
如果提交修改用docker commit 859549d3f157命令 859549d3f157就是使用docker ps查询到的CONTAINER ID
⑷ docker启动容器命令
它的一个启动容器的命令基本上都是可以进行相应参考的,所以说这种情况下一定要选择一个经常用的命令才行。
⑸ 如何启动一个已经创建的docker容器,并进入SHELL对其操作
有同学在docker下安装了nginx 但是不知道目录在哪,可以使用命令:
sudo find / -name "50x.html"
因为nginx里必定会有50x.html,所以查找它,结果发现nginx的目录在docker容器里,如果操作它,就需要进入容器的shell。
必须先启动容器:
sudo docker start “容器ID”
然后使用下边的命令进入shell:
sudo docker exec -it “容器ID” bash
将主机的文件复制到容器里:
sudo docker cp 主机目录 容器ID:容器目录
⑹ linux系统Docker命令怎么用
下面是安装 Docker 客户端并在上面运行容器的简单步骤。
1. 下载 Boot2Docker
在我们开始安装之前,我们需要 Boot2Docker 的可执行文件。可以从 它的 Github 下载最新版本的 Boot2Docker。在这篇指南中,我们从网站中下载版本 v1.6.1。我们从那网页中用我们喜欢的浏览器或者下载管理器下载了名为 docker-install.exe 的文件。
2. 安装 Boot2Docker
现在我们运行安装文件,它会安装 Window Docker 客户端、用于 Windows 的 Git(MSYS-git)、VirtualBox、Boot2Docker Linux ISO 以及 Boot2Docker 管理工具,这些对于开箱即用地运行全功能的 Docker 引擎都至关重要。
3. 运行 Boot2Docker
安装完成必要的组件之后,我们从桌面上的“Boot2Docker Start”快捷方式启动 Boot2Docker。它会要求你输入以后用于验证的 SSH 密钥。然后会启动一个配置好的用于管理在虚拟机中运行的 Docker 的 unix shell。
为了检查是否正确配置,运行下面的 docker version 命令。
docker version
4. 运行 Docker
由于 Boot2Docker Start 自动启动了一个已经正确设置好环境变量的 shell,我们可以马上开始使用 Docker。请注意,如果我们要将 Boot2Docker 作为一个远程 Docker 守护进程,那么不要在 docker 命令之前加 sudo。
现在,让我们来试试 hello-world 例子镜像,它会下载 hello-world 镜像,运行并输出 "Hello from Docker" 信息。
$ docker run hello-world
5. 使用命令提示符(CMD) 运行 Docker
现在,如果你想开始用命令提示符使用 Docker,你可以打开命令提示符(CMD.exe)。由于 Boot2Docker 要求 ssh.exe 在 PATH 中,我们需要在命令提示符中输入以下命令使得 %PATH% 环境变量中包括 Git 安装目录下的 bin 文件夹。
set PATH=%PATH%;"c:\Program Files (x86)\Git\bin"
运行上面的命令之后,我们可以在命令提示符中运行 boot2docker start 启动 Boot2Docker 虚拟机。
boot2docker start
注意: 如果你看到 machine does no exist 的错误信息,就运行 boot2docker init 命令。
然后复制上图中控制台标出命令到 cmd.exe 中为控制台窗口设置环境变量,然后我们就可以像平常一样运行 docker 容器了。
6. 使用 PowerShell 运行 Docker
为了能在 PowerShell 中运行 Docker,我们需要启动一个 PowerShell 窗口并添加 ssh.exe 到 PATH 变量。
$Env:Path="${Env:Path};c:\Program Files (x86)\Git\bin"
运行完上面的命令,我们还需要运行
boot2docker start
这会打印用于设置环境变量连接到虚拟机内部运行的 Docker 的 PowerShell 命令。我们只需要在 PowerShell 中运行这些命令就可以和平常一样运行 docker 容器。
7. 用 PUTTY 登录
Boot2Docker 会在%USERPROFILE%.ssh 目录生成和使用用于登录的公共和私有密钥,我们也需要使用这个文件夹中的私有密钥。私有密钥需要转换为 PuTTY 的格式。我们可以通过 puttygen.exe 实现。
我们需要打开 puttygen.exe 并从 %USERPROFILE%.ssh\id_boot2docker 中导入("File"->"Load" 菜单)私钥,然后点击 "Save Private Key"。然后用保存的文件通过 PuTTY 用 [email protected]:2022 登录。
8. Boot2Docker 选项
Boot2Docker 管理工具提供了一些命令,如下所示。
⑺ 怎么在docker 中启动一个daemon
docker run指定的命令如果不是那些一直挂起的命令(比如运行top,不断echo),就是会自动退出的。-d命令是设置detach为true,根据官方的文档,意思是让这个命令在后台运行,但并不是一直运行(我们在一个正常的Linux Terminal中运行/bin/bash,运行完了也就完了,不会一直挂着等待响应的,所以确实没办法用daemon方式来跑/bin/bash)。
这个地方官方早期和现在的文档也确实有些前后不一致,现在是detach,早期的文档说指定-d以daemon方式来运行容器,可能存在一定的误解。
另外,如果你需要跑容器里的bash,直接运行docker run -i -t CONTAINER_NAME /bin/bash 就可以了,如果觉得参数比docker attach多,可以设置一个别名(alias)来解决:
alias dockerbash='docker run -i -t CONTAINER_ID /bin/bash'
设置好别名后,直接运行dockerbash就可以进入容器的bash了
⑻ 如何在容器中运行docker命令
1. 安装 Docker在开始前,我们首先得确保在Linux主机中已经安装了Docker。这里,我运行的是CentOS 7 主机,我们将运行yum管理器和下面的命令来安装Docker。# yum install docker# systemctl restart docker.service2. 创建 Dockerfile现在,Docker守护进程已经在运行中了,我们现在准备创建自己的Firefox Docker容器。我们要创建一个Dockerfile,在其中我们要输入需要的配置来创建一个可以工作的Firefox容器。为了运行 Docker 镜像我们需要使用最新版本的CentOS。要创建 Docker 镜像,我们需要用文本编辑器创建一个名为Dockerfile的文件。# nano Dockerfile。
⑼ docker容器启动命令 /bin/bash有什么用,我发现不写这个命令也可以启动啊,求教大神。
这个命令不是启动容器的必填参数,这个命令只是在容器中会启动这个进程,如果你容器有写entrypoint的话,后面的命令会作为参数给entrypoint,entrypoint运行正常的话,容器就启动正常,所以和/bin/bash没有关系
⑽ linux怎么启动docker
2.1 在测试机启动容器,安装ssh
docker run -i -t ubuntu /bin/bash #此方式运行的容器,退出后容器就会关闭。
apt-get install openssh-server #安装ssh
#需要修改/etc/sshd/sshd_config文件中内容
PermitRootLogin yes
UsePAM no
2.2 启动ssh,容器以后台方式运行
docker run -d -p 50001:22 <容器id> /usr/sbin/sshd-D
#容器id可通过 docker ps-a查看,最上面的为最新的。
2.3 通过ssh连接到容器安装软件
ssh [email protected] 50001
#连上后想装什么就装什么,可使用exit退出容器,但后台还会运行。
2.4 服务安装完成后,停止容器。
docker stop <容器id> #停止运行的容器
2.5 把容器提交生成最新的镜像
docker commit <容器id> debian02 #把这个容器提交生成新的debian02镜像(该镜像是原始镜像与容器的整合)
2.6 打包镜像
docker save debian02 >/root/debian02.tar #debian02镜像打包
2.7 在另外的机器上导入镜像
docker load < debian02.tar #导入镜像
docker images #查看存在的镜像
2.8 启动容器
docker run -h="redis-test" --name redis-test -d -p 51000:22 -p51001:3306 -p 51003:6379 -p 51004:6381 -p 51005:80 -p 51006:8000 -p 51007:8888 debian02 /etc/rc.local
#此处是我测试机器启动命令,指定主机名与端口映射。
#启动后,后面又装了程序,开机自启动命令可放在/etc/rc.local文件中。
docker容器迁移简单方便,可以任意的拷贝部署,以后再也不怕新部署环境了,一堆依赖装的想死有木有。
3、关于docker容器的端口映射
由于docker容器的IP地址每次启动都会变,所以不适用于手动添加端口映射(难道每次重启都来查看容器的IP么?),所以需要每次启动容器时由docker程序自动添加NAT规则,前期尽可能的把需要映射的端口在创建容器时配置好,如下:docker run -h="activemq" --name activemq -d -p 51000:22 -p 51001:3306-p 51003:6379 -p 51004:6381 -p 51005:80-p 51006:8000 -p 51007:8888 debian/base/etc/rc.local
#此处我把mysql,redis,nginx,ssh都进行了映射。
后续对于docker容器的管理,记住容器的名称,如上述名称是activemq,则使用docker stop,start来控制容器进程。docker stop activemq
docker start activemq
当然,也可以不让docker每次启动容器修改容器的IP地址,参考如下:
docker网络配置:http://www.open-open.com/lib/view/open1404896485747.html
4、关于docker容器的多程序开机自动运行
docker容器每次启动时,开机自启动的命令都要在启动容器前指定。如 docker run -I -t debian /bin/bash命令,只会运行/bin/bash程序,其它的程序都不会运行,对于要跑多个程序的容器特别纠结。
多程序开机自动运行方法:
可把前面所说的启动命令换成dockerrun -I -t debian /etc/rc.local,在容器中把所有需要开机自的启动命令放在/etc/rc.local中,就可以达到多程序开机自启动了。
后台运行则是:docker run -d -p 50001:22 debian /etc/rc.local。注意:run命令是创建一个新的容器,如果要启动一个曾经运行过的容器,则用命令docker ps -a中找对应的容器ID,然后使用docker start <容器ID>即可。