docker : mysql

1. docker pull mysql
docker images
sudo docker run -p 3306:3306 –name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

sudo docker top mymysql 可以查询容器的硬件资源占用情况
查看容器启动日志
sudo docker logs -f mymysql

端口情况:
tcp6 0 0 :::3306 :::* LISTEN –

查看数据库 失败:
auto@ubuntu:~$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

使用以下命令可以进去:
mysql -h 127.0.0.1 -u root -p

2.

参考:
1. http://6226001001.blog.51cto.com/9243584/1891520
2. http://beyondvincent.com/2016/09/10/2016-09-10-use-mysql-with-docker/

docker : name is already in use by container

1. 运行 sudo docker run -d –name jenkins -p 8080:8080 jenkins
2. 电脑重新
3. 想重新开启docker jenkins
再次调用 sudo docker run -d –name jenkins -p 8080:8080 jenkins
提示:docker: Error response from daemon: Conflict. The container name “/jenkins” is already in use by container “eb4bca936d0c0047f1ac4ba0cfe3d97cad1d61575dc0697f6498d6ce38721e6d”. You have to remove (or rename) that container to be able to reuse that name.

4. 使用 sudo docker start eb4bca936d0c0047f1ac4ba0cfe3d97cad1d61575dc0697f6498d6ce38721e6d
就可以重新启动先前那个容器了
5. 同时可以 使用 sudo docker ps -a
see all containers in this case

参考:
1. https://stackoverflow.com/questions/31697828/docker-run-name-is-already-in-use-by-container [有用]

docker :jenkins

1. 从docker 仓库下载jenkins镜像
2. sudo docker run -d –name jenkins -v /home/auto/dockerworkspace/jenkins:/var/jenkins_home -p 8082:8080 jenkins
3.

参考:
1. http://ystyle.top/2016/04/16/docker-jenkins-git-mavenzi-dong-hua-gou-jian-yu-bu-shu/ [基本操作]
2. https://juejin.im/entry/589d1c251b69e60059ba04b5/?utm_source=gold-miner&utm_medium=readme&utm_campaign=github [TODO]
3. http://www.jianshu.com/p/c50423a3f40f[TODO]
4. https://my.oschina.net/jayqqaa12/blog/633683?p=2&temp=1499008269226
5. https://softlns.github.io/2016/11/14/jenkins-gitlab-docker/
6. https://addops.cn/post/jenkins-docker-01.html

docker : 管理容器数据

挂载一个主机目录作为卷

使用-v,除了可以创建一个数据卷,还可以挂载本地主机目录到容器中:

$ sudo docker run -d -P –name web -v /src/webapp:/opt/webapp training/webapp python app.py
这将会把本地目录/src/webapp挂载到容器的/opt/webapp目录。这在做测试时是非常有用的,例如我们可以挂载宿主机的源代码到容器内部,这样我们就可以看到改变源代码时的应用时如何工作的。宿主机上的目录必须是绝对路径,如果目录不存在docker会自动创建它。

备份、恢复或者迁移数据卷 [TODO]

参考:
1. http://wiki.jikexueyuan.com/project/docker/userguide/dockervolumes.html

docker : 安装 Nginx

1. 第一种 自己配置
2. 第二种 直接使用 nginx 的镜像

3. sudo docker run -p 8003:80 –name mynginx -d nginx

4. [TODO 配置容器和主机之间的映射关系]

sudo docker run -p 8003:80 –name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx

参考:
1. http://www.runoob.com/docker/docker-install-nginx.html

docker : hello world

1. 使用容器ubuntu:14.04 输出 hello world
$ sudo docker run ubuntu:14.04 /bin/echo ‘Hello world’
显示: Hello world

使用最新的python容器 输出 hello world
$ sudo docker run python echo ‘Hello world’
显示: Hello world

2. 运行容器里的终端进行交互
$ sudo docker run -t -i ubuntu:14.04 /bin/bash
root@af8bae53bdd3:/#

3. 命令
docker ps 列出容器
docker logs显示容器的标准输出
docker stop停止正在运行的容器
docker start
docker restart
docker search
docker rm
docker images
docker version
docker port 使用docker port可以查看指定(ID或者名字的)容器的某个确定端口映射到宿主机的端口号
例子:$ sudo docker port nostalgic_morse 5000
0.0.0.0:49155

查看WEB应用程序日志
$ sudo docker logs -f nostalgic_morse
* Running on http://0.0.0.0:5000/
10.0.2.2 – – [23/May/2014 20:16:31] “GET / HTTP/1.1” 200 –
10.0.2.2 – – [23/May/2014 20:16:31] “GET /favicon.ico HTTP/1.1” 404 –

查看我们WEB应用程序容器的过程

我们除了可以查看容器日志,我们还可以使用docker top来查看容器进程:
$ sudo docker top nostalgic_morse
PID USER COMMAND
854 root python app.py

检查我们的WEB应用程序

最后,我们可以使用docker inspect来查看Docker的底层信息。它会返回一个JSON文件记录docker容器的配置和状态信息。

$ sudo docker inspect nostalgic_morse
来让我们看下JSON的输出。

[{
“ID”: “bc533791f3f500b280a9626688bc79e342e3ea0d528efe3a86a51ecb28ea20”,
“Created”: “2014-05-26T05:52:40.808952951Z”,
“Path”: “python”,
“Args”: [
“app.py”
],
“Config”: {
“Hostname”: “bc533791f3f5”,
“Domainname”: “”,
“User”: “”,
. . .
我们也可以针对我们想要的信息进行过滤,例如,返回容器的IP地址,如下:

$ sudo docker inspect -f ‘{{ .NetworkSettings.IPAddress }}’ nostalgic_morse
172.17.0.5

4.使用Dockerfile创建镜像

$ mkdir sinatra
$ cd sinatra
$ touch Dockerfile

# This is a comment
FROM ubuntu:14.04
MAINTAINER Kate Smith
RUN apt-get -qq update
RUN apt-get -qqy install ruby ruby-dev
RUN gem install sinatra

参考:
1.http://dockone.io/article/102
2.http://www.runoob.com/docker/docker-hello-world.html
3.http://wiki.jikexueyuan.com/project/docker/