开机启动 docker :chkconfig docker on
搜索镜像:docker search 镜像名
( https://hub.docker.com/explore )
获取镜像:docker pull ubuntu:14.04
查看本机镜像:docker images
运行:docker run -it ubuntu:14.04 /bin/bash
-i
:允许你对容器内的标准输入 (STDIN) 进行交互。-t
:在新容器内指定一个伪终端或终端。--rm
:容器退出后随之将其删除
查看正在运行的容器:docker ps -a
创建镜像:
FROM ubuntu:14.04 # 基础镜像
MAINTAINER Docker ws <ws@docker.com> # 维护者信息
RUN apt-get -qq update # 安装软件
构建镜像:docker build -t="ouruser/sinatra:v2" .
-t
标记来添加 tag ,指定新的镜像的用户信息。.
是 Dockerfile 所在的路径(当前目录),也可以替换为一个具体的 Dockerfile 的路径。- 最终的镜像 id。所有的中间步骤所产生的容器都被删除和清理了。
- 注意一个镜像不能超过 127 层。
提交镜像:docker commit -m "jdk-8u112_tomcat-8" -a "Shuai" 4503614af3c3 jdk8_tomcat8
-m
来指定提交的说明信息,跟我们使用的版本控制工具一样;-a
可以指定更新的用户信息;- 之后是用来创建镜像的容器的 ID;
- 最后指定目标镜像的仓库名和 tag 信息。
- 创建成功后会返回这个镜像的 ID 信息。
导出镜像:docker save -o ubuntu_14.04.tar ubuntu:14.04
载入镜像:docker load < ubuntu_14.04.tar
移除镜像:docker rmi training/sinatra
停止所有容器:docker stop $(docker ps -a -q)
移除所有容器:docker rm $(docker ps -a -q)
启动已终止容器:docker start id
进入容器:docker attach b94d7021d093
docker exec -i -t b94d7021d093 /bin/bash
退出不停止容器:Ctrl + q p
挂载数据卷:docker run -d -P --name data_share -v /data/heeking/data_share:/home/data_share jdk_tomcat
data_share
:容器名/data/heeking/data_share
:主机目录/home/data_share
:容器目录jdk_tomcat
:镜像名
查看长id:docker inspect -f '{{.Id}}' ec7641833786
主机向容器传送文件:cp /sourcefile /var/lib/docker/devicemapper/mnt/ec7641833786f8639342cfee46f256f9d620662e7d0fecd19de4f4e125e88df6/rootfs/home/
容器向主机传送文件:docker cp a77a72ac178c:/var/www/html /var/www/
运行 MySQL 容器:docker run --name dbtest -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123 -d mysql:5.7
--name dbtest
:容器名-p 3306:3306
:宿主机端口:容器 MySQL 端口-e MYSQL_ROOT_PASSWORD=root123
:密码-d mysql:5.7
:镜像
https://docs.docker.com
https://yeasy.gitbooks.io/docker_practice/content
https://my.oschina.net/huangyong/blog/372491 (包含升级内核)
https://yq.aliyun.com/articles/65145
http://blog.csdn.net/asd05txffh/article/category/6166827
Docker info报错:
WARN:docker bridge-nf-call-iptables is disabled,
WARN:docker bridge-nf-call-ip6tables is disabled
http://blog.csdn.net/xypds2010/article/details/52212323
Docker存储驱动devicemapper介绍和配置
http://www.dockerinfo.net/2182.html
开机自启动:
[root@localhost yum.repos.d]# systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@localhost yum.repos.d]# cat /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
[Install]
WantedBy=multi-user.target