1. 启动一个容器并且进到里面,退出后,容器结束
  2.  
  3. [root@bogon ~]# docker run --name mynginx -it nginx
  4.  
  5. 启动一个容器,退出后自动删除
  6. [root@bogon stress]# docker run -it --rm stress --cpu 1
  7.  
  8. 后台启动一个容器,启动后,退出容器,容器仍然是up状态
  9.  
  10. [root@bogon ~]# docker run -d --name mynginx nginx
  11. [root@lab3 ~]# docker run -d -p 8085:8081 --restart=always --name nexus3 sonatype/nexus3 #注意8081是服务真实的端口
  12.  
  13. 过滤某个容器
  14. [root@bogon ~]# docker ps -a | grep mynginx
  15.  
  16. 启动已有的容器:
  17. [root@bogon ~]# docker start 3ec6e022d3ec
  18.  
  19. 只看最后一个容器
  20. [root@bogon ~]# docker ps -l
  21. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  22. 66cb3c773f86 nginx "nginx -g 'daemon ..." 16 seconds ago Up 15 seconds 0.0.0.0:91->80/tcp mynginx2
  23.  
  24. 进入容器: #进入后再退到linux环境中,容器仍然运行,生产中提倡
  25.  
  26. [root@bogon yum.bak]# yum install util-linux -y
  27. [root@bogon ~]# docker start 3ec6e022d3ec
  28. 3ec6e022d3ec
  29. [root@bogon ~]# docker inspect --format "{{.State.Pid}}" mynginx2 #上面启动后要速度,否则 docker 又exited
  30. 32850
  31. [root@bogon ~]# nsenter --target 32850 --mount --uts --ipc --net --pid
  32. [root@3ec6e022d3ec /]# exit
  33. logout
  34. [root@bogon ~]# docker ps -a
  35. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  36. 78a40f56544c nginx "/bin/bash" About an hour ago Exited (0) About an hour ago mydockre1
  37. 3ec6e022d3ec nginx "/bin/bash" About an hour ago Up 2 minutes nginx
  38. 863c93fc46fb nginx "echo 'hello word'" About an hour ago Exited (0) About an hour ago unruffled_varahamihira
  39.  
  40. 脚本进入容器:
  41. [root@bogon ~]# cat c.sh
  42. #!/bin/bash
  43. CNAME=$1
  44. CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME)
  45. nsenter --target $CPID --mount --uts --ipc --net --pid
  46. [root@bogon ~]# docker start nginx
  47. nginx
  48. [root@bogon ~]# ./c.sh mynginx
  49. [root@3ec6e022d3ec /]#
  50.  
  51. 停止容器:
  52. [root@bogon ~]# docker stop 3ec6e022d3ec
  53. 3ec6e022d3ec
  54.  
  55. 删除容器:
  56.  
  57. [root@bogon ~]# docker stop acdde4415e79
  58. [root@bogon ~]# docker rm acdde4415e79
  59.  
  60. 强制删除容器
  61.  
  62. docker rmi fc7a05ff1928 -f
  63.  
  64. 网络访问;
  65.  
  66. [root@bogon ~]# yum install -y bridge-utils
  67. [root@bogon ~]# brctl show
  68. bridge name bridge id STP enabled interfaces
  69. docker0 8000.02427c67ad94 no veth67067d2
  70. vethc4fa94d
  71. [root@bogon ~]# iptables -t nat -l -n
  72. iptables v1.4.21: unknown option "-l"
  73. Try `iptables -h' or 'iptables --help' for more information.
  74. [root@bogon ~]# iptables -t nat -L -n
  75. target prot opt source destination
  76. MASQUERADE all -- 172.17.0.0/16 0.0.0.0/0
  77.  
  78. 随机映射端口:
  79. [root@bogon ~]# docker run -d -P --name mynginx1 nginx
  80. [root@bogon ~]# docker ps -l
  81. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  82. 60ffbffe8f27 nginx "nginx -g 'daemon ..." About a minute ago Up About a minute 0.0.0.0:32768->80/tcp mynginx1
  83.  
  84. 访问nginx
  85. http://192.168.43.71:32768/
  86.  
  87. Welcome to nginx!
  88. If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
  89.  
  90. For online documentation and support please refer to nginx.org.
  91. Commercial support is available at nginx.com.
  92.  
  93. Thank you for using nginx.
  94.  
  95. 指定映射端口:
  96. [root@bogon ~]# docker run -d -p 91:80 --name mynginx2 nginx
  97. 66cb3c773f8610563fb382cf5045792478225affbb126258802b7a193a964e12
  98. [root@bogon ~]# docker ps -l
  99. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  100. 66cb3c773f86 nginx "nginx -g 'daemon ..." 16 seconds ago Up 15 seconds 0.0.0.0:91->80/tcp mynginx2
  101.  
  102. 访问nginx
  103. http://192.168.43.71:91/
  104.  
  105. Welcome to nginx!
  106. If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
  107.  
  108. For online documentation and support please refer to nginx.org.
  109. Commercial support is available at nginx.com.
  110.  
  111. Thank you for using nginx.
  112.  
  113. 数据管理:
  114.  
  115. 1、数据卷:
  116.  
  117. [root@bogon ~]# docker run -it --name volume-test1 -h nginx -v /data nginx
  118. [root@bogon ~]# docker ps -l
  119. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  120. b7f26eddfe04 nginx "nginx -g 'daemon ..." About a minute ago Exited (0) 12 seconds ago volume-test1
  121. [root@bogon ~]# docker rm b7f26eddfe04
  122. b7f26eddfe04
  123. [root@bogon ~]# docker run -it --name volume-test1 -h centos -v /data centos #-h 指定版本
  124. [root@centos /]#
  125. [root@centos /]#exit
  126. [root@bogon ~]# docker inspect -f {{.Volumes}} volume-test1
  127. Template parsing error: template: :1:2: executing "" at <.Volumes>: map has no entry for key "Volumes"
  128. [root@bogon ~]# docker inspect volume-test1 | grep Mounts
  129. "Mounts": [
  130. [root@bogon ~]# docker inspect volume-test1 | grep Mounts -A 10
  131. "Mounts": [
  132. {
  133. "Type": "volume",
  134. "Name": "92abd271864afe570792711fda8a5755fff219dfeabb6a59f58f02c7802c903c",
  135. "Source": "/var/lib/docker/volumes/92abd271864afe570792711fda8a5755fff219dfeabb6a59f58f02c7802c903c/_data",
  136. "Destination": "/data",
  137. "Driver": "local",
  138. "Mode": "",
  139. "RW": true,
  140. "Propagation": ""
  141. }
  142.  
  143. [root@bogon ~]# cd /var/lib/docker/volumes/92abd271864afe570792711fda8a5755fff219dfeabb6a59f58f02c7802c903c/_data
  144. [root@bogon _data]# mkdir hello
  145. [root@bogon _data]# ls
  146. hello
  147.  
  148. [root@bogon _data]# docker attach fd4d63501e40
  149. [root@centos /]# ls /data/
  150. hello
  151. [root@centos /]# cd /data/
  152. [root@centos data]# mkdir shanghai
  153. [root@centos data]# ls
  154. hello shanghai
  155.  
  156. 指定目录:
  157.  
  158. [root@bogon ~]# docker run -it --name volume-test2 -h centos -v /opt:/opt centos #本地opt:容器opt
  159. [root@centos /]# ls /opt/
  160. centos.yum.bak
  161.  
  162. 2、数据库容器:容器之间共享
  163.  
  164. [root@bogon ~]# docker ps -a
  165. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  166. becd2c381f3e centos "/bin/bash" 10 minutes ago Up 10 minutes volume-test2
  167. fd4d63501e40 centos "/bin/bash" 42 minutes ago Exited (127) 8 minutes ago volume-test1
  168. 66cb3c773f86 nginx "nginx -g 'daemon ..." 2 hours ago Up 2 hours 0.0.0.0:91->80/tcp mynginx2
  169. 60ffbffe8f27 nginx "nginx -g 'daemon ..." 2 hours ago Up 2 hours 0.0.0.0:32768->80/tcp mynginx1
  170. 4351a4435e22 nginx "nginx -g 'daemon ..." 3 hours ago Up 3 hours 80/tcp nginx
  171. 78a40f56544c centos "/bin/bash" 4 hours ago Exited (0) 4 hours ago mydockre1
  172. 3ec6e022d3ec centos "/bin/bash" 4 hours ago Up 3 hours mydocker
  173. 863c93fc46fb centos "echo 'hello word'" 4 hours ago Exited (0) 4 hours ago unruffled_varahamihira
  174.  
  175. [root@bogon ~]# docker run -it --name volume-test4 -h centos --volumes-from volume-test1 centos
  176. [root@centos /]# ls /data/
  177. hello shanghai
  178.  
  179. 手动构建docker镜像
  180.  
  181. [root@bogon ~]# docker run --name centos-man -it centos
  182. [root@c10e6c649a66 /]#
  183. [root@c10e6c649a66 /]# yum install -y wget gcc gcc-c++ make openssl-devel
  184. [root@c10e6c649a66 /]# wget http://nginx.org/download/nginx-1.9.9.tar.gz
  185. [root@c10e6c649a66 /]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
  186. [root@c10e6c649a66 /]# useradd -s /sbin/nologin -M www
  187. [root@c10e6c649a66 nginx-1.9.9]# mkdir /usr/local/nginx
  188. [root@c10e6c649a66 nginx-1.9.9]# ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=../pcre-8.42
  189. [root@c10e6c649a66 nginx-1.9.9]# make
  190. [root@c10e6c649a66 nginx-1.9.9]# make install
  191. [root@c10e6c649a66 nginx-1.9.9]# vi /etc/rc.local
  192. #!/bin/bash
  193. # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
  194. #
  195. # It is highly advisable to create own systemd services or udev rules
  196. # to run scripts during boot instead of using this file.
  197. #
  198. # In contrast to previous versions due to parallel execution during boot
  199. # this script will NOT be run after all other services.
  200. #
  201. # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
  202. # that this script will be executed during boot.
  203.  
  204. touch /var/lock/subsys/local
  205. #/usr/local/nginx/sbin/nginx #这句话不要添加,否则容器启动后就会退出
  206. [root@c10e6c649a66 nginx-1.9.9]# vi /usr/local/nginx/conf/nginx.conf
  207. daemon off; #需要添加这句话,在前台运行
  208. #user nobody;
  209. worker_processes 1;
  210.  
  211. #error_log logs/error.log;
  212. #error_log logs/error.log notice;
  213. #error_log logs/error.log info;
  214.  
  215. #pid logs/nginx.pid;
  216. [root@c10e6c649a66 nginx-1.9.9]# exit
  217. logout
  218. [root@bogon ~]# docker ps -l
  219. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  220. c10e6c649a66 centos "/bin/bash" 13 hours ago Up About an hour centos-man
  221. [root@bogon ~]# docker commit -m "my nginx" c10e6c649a66 zhuzihao/my-nginx:v1
  222. sha256:dcefc0f1811797422d5d69745e2b92d72c5052026208f3dc658ec951e157eab1
  223. [root@bogon ~]# docker images
  224. REPOSITORY TAG IMAGE ID CREATED SIZE
  225. zhuzihao/my-nginx v1 dcefc0f18117 20 seconds ago 393MB
  226. nginx latest 5699ececb21c 4 days ago 109MB
  227. centos latest 49f7960eb7e4 3 weeks ago 200MB
  228. [root@bogon ~]# docker run -d -p 95:80 zhuzihao/my-nginx:v1 /usr/local/nginx/sbin/nginx
  229. ced0276ad948614b4ff5866e7abf5e25185d0b8bbd8c45465df93c0045966d4c
  230. [root@bogon ~]# docker ps -l
  231. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  232. ced0276ad948 zhuzihao/my-nginx:v1 "/usr/local/nginx/..." 9 seconds ago Up 9 seconds 0.0.0.0:95->80/tcp clever_beaver
  233.  
  234. Dockerfile构建dicker镜像
  235.  
  236. [root@bogon ~]# mkdir /opt/docker-file
  237. [root@bogon ~]# cd /opt/docker-file/
  238. [root@bogon docker-file]# mkdir nginx
  239. [root@bogon docker-file]# cd nginx/
  240. [root@bogon nginx]# wget http://nginx.org/download/nginx-1.9.9.tar.gz
  241. [root@bogon nginx]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
  242. [root@bogon nginx]# vi Dockerfile #必须大写
  243. #this is my dockerfile
  244. #verion 1.0
  245. #auther zi hao
  246.  
  247. #Base imags
  248. FROM centos :默认从本地
  249.  
  250. #MAINTAINER
  251. MAINTAINER zi hao
  252.  
  253. #ADD
  254. ADD pcre-8.42.tar.gz /usr/local/src
  255. ADD nginx-1.9.9.tar.gz /usr/local/src
  256.  
  257. #RUN
  258. RUN yum install -y wget gcc gcc-c++ make openssl-devel
  259. RUN useradd -s /sbin/nologin -M www
  260.  
  261. #WORKDIR
  262. WORKDIR /usr/local/src/nginx-1.9.9
  263. RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.42 && make && make install
  264. RUN echo "daemon off;" >> /usr/local/nginx/nginx.conf
  265.  
  266. ENV PATH /usr/local/ngix/sbin:$PATH
  267. EXPOSE 80
  268. CMD ["nginx"]
  269.  
  270. [root@bogon nginx]# docker build -t nginx-file:v1 /opt/docker-file/nginx/ #只写docker文件的路径,不用带上dockerfile
  271. [root@bogon nginx]# docker images
  272. REPOSITORY TAG IMAGE ID CREATED SIZE
  273. nginx-file v1 5def32732043 5 minutes ago 390MB
  274. zhuzihao/my-nginx v1 a743f6bd0741 About an hour ago 393MB
  275. nginx latest 5699ececb21c 4 days ago 109MB
  276. centos latest 49f7960eb7e4 3 weeks ago 200MB
  277.  
  278. Docker核心原理-资源隔离和限制
  279.  
  280. [root@bogon ~]# cd /opt/docker-file/
  281. [root@bogon docker-file]# ls
  282. nginx
  283. [root@bogon docker-file]# mkdir stress
  284. [root@bogon docker-file]# cd stress/
  285. [root@bogon stress]# wget http://mirrors.aliyun.com/repo/epel-7.repo
  286. [root@bogon stress]# vi Dockerfile
  287. FROM centos
  288. ADD epel-7.repo /etc/yum.repos.d/
  289. RUN yum install stress && yum clean all
  290. ENTRYPOINT ["stress"]
  291.  
  292. [root@bogon stress]# docker build -t stress .
  293. [root@bogon stress]# docker images
  294. REPOSITORY TAG IMAGE ID CREATED SIZE
  295. stress latest 244ae61acc08 7 minutes ago 340MB
  296. nginx-file v1 5def32732043 9 hours ago 390MB
  297. zhuzihao/my-nginx v1 a743f6bd0741 10 hours ago 393MB
  298. nginx latest 5699ececb21c 4 days ago 109MB
  299. centos latest 49f7960eb7e4 3 weeks ago 200MB
  300. registry latest d1fd7d86a825 5 months ago 33.3MB
  301.  
  302. [root@bogon stress]# docker run -it --rm stress --cpu 1
  303. [root@bogon ~]# top
  304. [root@bogon ~]# docker run -it --rm -m 256m stress --vm 1 --vm-bytes 200m --vm-hang 0
  305. [root@bogon stress]# docker ps -l
  306. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  307. 8932a850dd60 stress "stress --vm 1 --v..." 2 minutes ago Up 2 minutes festive_jennings
  308. [root@bogon stress]# docker exec 8932a850dd60
  309.  
  310. docker网络和registry
  311.  
  312. [root@bogon ~]# docker pull registry
  313. [root@bogon ~]# brctl show
  314. bridge name bridge id STP enabled interfaces
  315. docker0 8000.0242f82b6209 no veth62318cf
  316. vethdbb7907
  317. [root@bogon ~]# iptables -t nat -L -n
  318. Chain PREROUTING (policy ACCEPT)
  319. target prot opt source destination
  320. DOCKER all -- 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
  321.  
  322. Chain INPUT (policy ACCEPT)
  323. target prot opt source destination
  324.  
  325. Chain OUTPUT (policy ACCEPT)
  326. target prot opt source destination
  327. DOCKER all -- 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCAL
  328.  
  329. Chain POSTROUTING (policy ACCEPT)
  330. target prot opt source destination
  331. MASQUERADE all -- 172.17.0.0/16 0.0.0.0/0
  332.  
  333. Chain DOCKER (2 references)
  334. target prot opt source destination
  335. RETURN all -- 0.0.0.0/0 0.0.0.0/0
  336. [root@bogon ~]# vi /usr/lib/systemd/system/docker.service
  337. 在12行后面增加 --insecure-registry ip:5000
  338. [root@bogon ~]# systemctl daemon-reload
  339. [root@bogon ~]# systemctl restart docker
  340. [root@bogon ~]# docker run -d -p 5000:5000 registry
  341. 426f87a37407473caf505c8817903515b86d1032bedc48367a8769a4f11e5355
  342. [root@bogon ~]# docker ps -l
  343. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  344. 426f87a37407 registry "/entrypoint.sh /e..." 7 seconds ago Up 5 seconds 5000/tcp heuristic_swirles
  345. [root@bogon ~]# docker tag nginx 192.168.43.71:5000/test/ng:v1
  346. [root@bogon ~]# docker images
  347. REPOSITORY TAG IMAGE ID CREATED SIZE
  348. stress latest 244ae61acc08 About an hour ago 340MB
  349. nginx-file v1 5def32732043 10 hours ago 390MB
  350. zhuzihao/my-nginx v1 a743f6bd0741 11 hours ago 393MB
  351. 192.168.43.71:5000/test/ng v1 5699ececb21c 4 days ago 109MB
  352. nginx latest 5699ececb21c 4 days ago 109MB
  353. centos latest 49f7960eb7e4 3 weeks ago 200MB
  354. registry latest d1fd7d86a825 5 months ago 33.3MB
  355. [root@bogon ~]# docker push 192.168.43.71:5000/test/ng:v1
  356.  
  357. 从另一台机子上pull镜像
  358. [root@bogon ~]# docker pull 192.168.43.71:5000/test/ng

docker笔记、常遇问题、常用命令的更多相关文章

  1. docker学习笔记二:常用命令

    docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...

  2. windows下docker的安装及常用命令学习

    docker search 镜像名 本文主要介绍Docker在Windows下的安装.关于Docker的介绍和文档在其官网中可以找到:http://www.docker.com .安装环境:Windo ...

  3. Oracle学习笔记—数据字典和常用命令(转载)

    转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...

  4. docker的安装及常用命令

    一:概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用 ...

  5. Docker的入门及常用命令

    Docker入门及常用命令 1. 各个容器之间是相互隔离状态: 这样减少了我们软件之间的影响. 2. docker是os层虚拟化架构的一种产品体现, os层虚拟化架构出来的操作系统需要和宿主机操作系统 ...

  6. Docker第二弹之常用命令

    Docker的常用命令 底层原理 Docker是如何工作的 Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从 ...

  7. 【Docker】docker的安装和常用命令

    一.docker安装和启动 1.yum 命令 yum install docker 2.docker启动命令 sudo systemctl start docker 二.docker常用命令 dock ...

  8. docker入门资料及常用命令

      Docker17中文开发手册 :https://www.php.cn/manual/view/36147.html   Linux部署Docker及常用命令: https://www.cnblog ...

  9. Docker——基本使用及常用命令

    Docker 是一个开源的应用容器引擎,而一个容器其实是一个虚拟化的独立的环境,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. ...

  10. CentOS-yum安装Docker环境(含:常用命令)

    安装Docker环境 $ yum install docker -y 启动Docker $ systemctl start docker 设置自启动 $ systemctl enable docker ...

随机推荐

  1. linux抓取usb包设置usbmon

  2. 第十一天 unittest参数化模块

    unittest的工作原理:一下例子简单的描述了整个过程 def calc(a,b): return a//b import unittest,HTMLTestRunner import Beauti ...

  3. 创建基本的webpack4.x项目

    1.步骤 1)运行npm init -y 快速初始化项目 2)在项目根目录创建src源代码目录和dist产品目录,目录结构 webpack4.x-base |dist |src |index.html ...

  4. 2017多校联合训练2—HDU6054--Is Derek lying?(思维题)

    Is Derek lying? Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  5. EasySwoole 在mac上装虚拟机centos共享mac目录报错处理

    [2019-09-26 21:37:09][DEBUG][ERROR] : [listen /media/psf/Home/wwwroot/myobj/easyswoole/Temp/TaskWork ...

  6. Oracle For Linux

    安装前检查 检查是否安装以下软件rpm -qa | grep **下面**软件包 安装包名称 是否安装 binutils-2.17.50.0.6 √ compat-libstdc++-33-3.2. ...

  7. zookeeper系列(七)zookeeper的序列化及通讯协议

    作者:leesf    掌控之中,才会成功:掌控之外,注定失败.原创地址http://www.cnblogs.com/leesf456/p/6091208.html尊重作者原创,奇文共欣赏,大家共同学 ...

  8. svn 双备份

    svn备份的方式有三种: 1svnadmin dump 2)svnadmin hotcopy 3)svnsync.  优缺点分析============== 第一种svnadmin dump是官方推荐 ...

  9. IDEA:Process finished with exit code -1073741819 (0xC0000005)

    出门左转:https://www.cnblogs.com/virgosnail/p/10335224.html

  10. TCP时间戳选项Timestamp

    时间戳选项发送方在每个报文段中放置一个时间戳值.接收方在确认中返回这个数值,从而允许发送方为每一个收到的ACK计算RTT(我们必须说“每一个收到的ACK”而不是“每一个收到的报文段”,是因为TCP通常 ...